caleb
caleb

Reputation: 119

Question about setting datePicker time in Swift

If you look at the iPhone alarm app I can see that if I don't set the time in the date picker, the alarm is set to the current time.

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

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

The above code outputs the time set when the datePicker is moved. How to output current time as default without moving datePicker as above?

Upvotes: 0

Views: 84

Answers (3)

Suhail
Suhail

Reputation: 332

Try this

@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

}

Upvotes: 1

Help
Help

Reputation: 84

The date Picker works and gives date even without moving datePicker. I have tested it. @IBAction func getCurrentTime() {

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

Problem is with your code.

Upvotes: 0

Minh Huynh
Minh Huynh

Reputation: 1

Put the datePicker.date outside the func selectAlarm(), eg: in viewDidLoad()

 override func viewDidLoad() {
    super.viewDidLoad()

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

Upvotes: 0

Related Questions