将string转换为NSDate给出错误的date
我有一个string,我使用stringFromDate
转换,现在我试图将其转换回来,但是当UIPicker启动时,它给了我错误的一天
let dateFormatter = NSDateFormatter() dateFormatter.dateFormat = "dd MMM YYYY" print(birthday) // logs 15 Jan 1992 let date = dateFormatter.dateFromString(birthday) self.datePicker.setDate(date!, animated: true)
我尝试了硬编码"15 Feb 1992"
但仍然是相同的结果。 UIDatePicker上的date显示1991年12月22日在开始。
如果我使用铁杆10 Jan 1980
,它从1979年12月23日开始。
(我不知道是否是这样的情况,但我有MMM dd YYYY
在UIPickerView,而它的dd MMM YYYY
的string..我不认为虽然保存,它保存了正确的价值)..
您正在使用错误的格式。 你需要dd MMM yyyy
。
使用正确的格式string是最重要的..
YYYY是以周为基准的日历年。 (用于ISO周年日历)
yyyy是普通的日历年。
所以,你应该使用“yyyy”而不是“YYYY”。
let dateFormatter = NSDateFormatter() dateFormatter.dateFormat = "dd MMM yyyy" print(birthday) let date = dateFormatter.dateFromString(birthday) self.datePicker.setDate(date!, animated: true)
更多string格式的date:请参阅此链接
https://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspx