将字符串转换为NSDate给出错误的日期

时间:2016-04-27 15:50:10

标签: ios swift date nsdate uidatepicker

我有一个使用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上的日期显示在1991年12月22日的开始。

如果我使用核心10 Jan 1980,则从1979年12月23日开始。

(我不知道是否属于这种情况,但我在UIPickerView中有MMM dd YYYY,而对于字符串,我dd MMM YYYY已经https://api.locu.com/v2/venue/search { "api_key" : "my API key", "fields" : [ "name", "description", "location", "contact", "website_url", "menu_url", "open_hours" ], "venue_queries" : [ { "categories" : "restaurant", "location" : { "geo" : { "$in_lat_lng_radius" : [44.0521, -123.116207, 6000] } }, "delivery" : { "will_deliver" : true } } ] } 我不知道'但是想想,因为在保存时,它会保存正确的价值)..

2 个答案:

答案 0 :(得分:1)

您使用的格式错误。您需要dd MMM yyyy

答案 1 :(得分:1)

使用正确的格式字符串是最重要的..

YYYY是基于周的日历年。 (用于ISO周年日历)

yyyy是普通的日历年。

所以,你应该使用'yyyy'代替'YYYY'。

{{1}}

有关日期的更多字符串格式:请参阅此链接

https://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspx