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

标签 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)

我尝试硬编码“1992年2月15日”,但结果仍然相同。 UIDatePicker 上的日期在“开始”时显示为 1991 年 12 月 22 日。

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

(我不知道情况是否如此,但我在 UIPickerView 中有 MMM dd 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)

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

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

关于ios - 将字符串转换为 NSDate 给出错误的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48645175/

相关文章:

iphone - 自定义 QLPreviewController

ios - 后台抓取,测试问题

swift - 背景颜色清晰的 UIToolbar 在 iOS 10 中变为白色

php - 在 php 中添加六个月

date - DataJS渲染日期为/Date(1363708765000)/

sql - 将日期范围转换为单独的日期

ios - 显示弹出窗口后删除 UITextField 文本

ios - 创建具有微妙模糊效果的透明 UIView

ios - Collection View 单元格未出现在 Collection View 中?

swift - 从闭包中获取值(value)并快速添加到 numberOfRowsInSection