关于在Swift中设置datePicker时间的问题

时间:2019-11-11 01:56:11

标签: ios swift

如果您查看iPhone闹钟应用程序,可以看到,如果我没有在日期选择器中设置时间,则闹钟设置为当前时间。

@IBAction func selectAlarm(_ sender: Any) {
        let dateFormatter = DateFormatter()
        dateFormatter.dateStyle = .none
        dateFormatter.timeStyle = .short

        let date = dateFormatter.string(from: datePicker.date)
        print("date : \(date)")
    }

上面的代码输出datePicker移动时设置的时间。如何在不移动datePicker的情况下默认输出当前时间?

3 个答案:

答案 0 :(得分:1)

尝试一下

@IBAction func selectAlarm(_ sender: Any) {

  let newDatePicker = UIDatePicker()
  newDatePicker.date = Date()
  let dateFormatter = DateFormatter()
  dateFormatter.dateFormat = "HH:mm:ss"
  let currentTime = dateFormatter.string(from: newDatePicker.date)
  print("time : \(currentTime)")

  self.yourTextField.text = currentTime

}

答案 1 :(得分:0)

将datePicker.date放在func selectAlarm()之外,例如:在viewDidLoad()中

 override func viewDidLoad() {
    super.viewDidLoad()

    datePicker.datePickerMode = .time
    datePicker.date = Date()
}

答案 2 :(得分:0)

即使没有移动datePicker,日期选择器也可以工作并给出日期。我已经测试过了  @IBAction func getCurrentTime(){

    var formatter = DateFormatter()
    formatter.dateFormat = "DD/MM/YY"
    var dd = formatter.string(from: datePicker.date) 
    print(dd)
}

问题出在您的代码上。