Search code examples
iosswiftuidatepicker

Datepicker picks wrong date


I am converting date to day, but if I just println() the current selected date in the datepicker, I get wrong time and wrong date.

@IBOutlet weak var datepicker: UIDatePicker!

@IBAction func displayDay(sender: AnyObject) {
    var chosenDate = self.datepicker.date

    println(chosenDate)

I've following date selected date. enter image description here

And click on the button underneath datepicker. I get following line in output

 2015-01-11 20:17:37 +0000

Can somebody tell me.what's wrong with output?


Solution

  • This is fine because the date picker uses its local time but it stores UTC time. It means your local time offset is -5h. You can do as follow to extract the right date and time from it:

    extension NSDate {
        var localizedDescription: String {
           return descriptionWithLocale(NSLocale.currentLocale()) ?? ""
        }
    }
    
    println(chosenDate.localizedDescription)
    

    Swift 3 or later

    extension Date {
        var localizedDescription: String {
            return description(with: .current)
        }
    }
    

    Date().localizedDescription  // "Monday, October 16, 2017 at 2:24:11 AM Brasilia Summer Time"