【问题标题】:Get just the date (no time) from UIDatePicker从 UIDatePicker 获取日期(没有时间)
【发布时间】:2015-06-12 16:12:36
【问题描述】:

我正在尝试从 UIDatePicker 获取日期:

myDatePicker.datePickerMode = UIDatePicker.Mode.date
var selectedDate=myDatePicker.date
println(selectedDate)

但是,这比日期打印更多(打印 2015-04-09 21:45:13 +0000)。我如何只获得日期部分(没有时间)?我还将日期选择器模式属性设置为日期。

【问题讨论】:

  • 我现在也有同样的问题。下一个问题是,时间部分(在您的示例中为 21:45:13)代表什么?

标签: swift datepicker


【解决方案1】:

根据 Apple 的文档,datePicker.mode 应该是date,所以你可以像这样使用DateFormatter

斯威夫特 4

datePicker.datePickerMode = UIDatePicker.Mode.date
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd MMMM yyyy"
let selectedDate = dateFormatter.string(from: datePicker.date)
print(selectedDate)

【讨论】:

    【解决方案2】:
    let dateFormatter = NSDateFormatter()
    dateFormatter.dateFormat = "MM/dd/yy"
    let dateString = dateFormatter.stringFromDate(myDatePicker.date)
    

    您可以打印dateString,将其分配给标签,等等。格式为

    04/09/15

    【讨论】:

      【解决方案3】:

      Swift 3/4,这将打印类型为 Mar 08, 2017 的字符串

         datePicker.datePickerMode = .date
          let dateFormatter = DateFormatter()
          dateFormatter.dateFormat = "MMM dd, yyyy"
          let selectedDate = dateFormatter.string(from: datePicker.date)
          print(selectedDate)
      

      【讨论】:

        【解决方案4】:

        在遇到类似问题后,我只想在这里补充一点。我会遵循日期字符串显示的阴影答案。当您使用 UIDatePicker 时,不是从 XCode 7 和 swift 2 开始,将以下设置为仅查看 Picker 中的日期:

        @IBOutlet weak var datePicker: UIDatePicker!
        datePicker.datePickerMode = .Date
        

        【讨论】:

          【解决方案5】:

          Swift 4.0 版本代码在这里

          @IBAction func saveDateAction(_ sender: Any) {
          
                  myDatePicker.datePickerMode = UIDatePicker.Mode.date
                  let dateFormatter = DateFormatter()
                  dateFormatter.dateFormat = "dd MMM yyyy"
                  let selectedDate = dateFormatter.string(from: myDatePicker.date)
                  print("selectedDate",selectedDate)    
              }
          

          【讨论】:

            【解决方案6】:

            日期选择器日期:

            let date = datePicker.date
            let dateConverted = Date.init(year: date.GetYear(), month: date.GetMonth(), day: date.GetDay())
            //dateConverted result = 2019-02-27 00:00:00 +0000
            let predicate = NSPredicate(format: "booking_date == %@", dateConverted as CVarArg)
            

            使用这个扩展:

            extension Date {
            
            init(year: Int, month: Int, day: Int) {
                var dc = DateComponents()
                dc.year = year
                dc.month = month
                dc.day = day
            
                var calendar = Calendar(identifier: .gregorian)
                calendar.timeZone = TimeZone(secondsFromGMT: 0)!
                if let date = calendar.date(from: dc) {
                    self.init(timeInterval: 0, since: date)
                } else {
                    fatalError("Date component values were invalid.")
                }
            }
            
            func GetYear() -> Int {
                let calendar: NSCalendar! = NSCalendar(calendarIdentifier: .gregorian)
                let components = calendar.components([.day , .month , .year], from: self)
                return components.year!
            }
            
            func GetMonth() -> Int {
                let calendar: NSCalendar! = NSCalendar(calendarIdentifier: .gregorian)
                let components = calendar.components([.day , .month , .year], from: self)
                return components.month!
            }
            
            func GetDay() -> Int {
                let calendar: NSCalendar! = NSCalendar(calendarIdentifier: .gregorian)
                let components = calendar.components([.day , .month , .year], from: self)
                return components.day!
            }
            }
            

            【讨论】:

              猜你喜欢
              • 2016-04-13
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-06-22
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多