Bad converting String to NSDate

2019-01-20 20:06发布

问题:

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 fromDateI 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

回答1:

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