PiterPan PiterPan - 6 months ago 23
Swift Question

Bad converting String to NSDate

I have a problem with converting String to NSDate. In my text field when user tap on it, is a possibility to chose a date using

UIDatePicker
.
String
as a date in
TextField
looks like that: "yyyy-mm-dd" Now when I try to convert date for example on 2016-05-13 using this method:

func changeStringToNSDate(){

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-mm-dd"
let from = moreSorts.fromDatePickerTextField.text!
let fromDate = dateFormatter.dateFromString(from)

print(fromDate)

}


When I print
fromDate
I recieve an information that
fromDate
is not 2016-05-13 but 2016-01-11 23:58:00 +0000. I don't know why I have 2016-01-11 when in my
TextField
String shows 2016-05-13

Answer

It's difficult to tell what might be going wrong for sure with the information you've provided. In a Swift playground I'm getting 2016-01-13 and not 2016-01-11, but if I change the date format, I can get 2016-05-13:

dateFormatter.dateFormat = "yyyy-MM-dd"

The uppercase MM is key. I would check out this website to play around with the date format options:

http://nsdateformatter.com

Comments