将字符串转换为 NSDate 给出错误的日期
Converting String to NSDate Giving Wrong Date
我有一个使用 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
。我不这么认为,因为在保存时,它保存了正确的值)..
您使用的格式有误。你需要 dd MMM yyyy
.
使用正确的格式字符串是最重要的..
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)
有关日期的更多字符串格式:请参阅此 link
https://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspx
我有一个使用 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
。我不这么认为,因为在保存时,它保存了正确的值)..
您使用的格式有误。你需要 dd MMM yyyy
.
使用正确的格式字符串是最重要的..
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)
有关日期的更多字符串格式:请参阅此 link
https://msdn.microsoft.com/en-us/library/az4se3k1(v=vs.110).aspx