Swift日期格式

Swift日期格式,swift,nsdateformatter,Swift,Nsdateformatter,我试图从按钮中提取一个日期字符串,格式是存储在CoreData中的日期 这是我的密码: let dateStr = setDateBTN.titleLabel?.text let dateFormatter = NSDateFormatter() dateFormatter.dateFormat = "MM-dd-YYYY" let date:NSDate = dateFormatter.dateFromString(dateStr!)! 如果我在dateStr上打印,我会得到以下信息:03-

我试图从按钮中提取一个日期字符串,格式是存储在CoreData中的日期

这是我的密码:

let dateStr = setDateBTN.titleLabel?.text
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MM-dd-YYYY"
let date:NSDate = dateFormatter.dateFromString(dateStr!)!
如果我在dateStr上打印,我会得到以下信息:
03-10-2015
。如果我在收到日期立即打印LN:
2014-12-21 05:00:00+0000


当我在日期格式化程序中运行实际日期时,您是否知道为什么实际日期会发生变化?

NSDateFormatter类参考:

日期格式指南(苹果):

一个常见的错误是使用YYYY。yyyy指定日历年,而yyyy指定ISO年-周日历中使用的年(年中的周)

正如您所期望的那样,您的代码应该如下所示:

let dateStr = setDateBTN.titleLabel?.text
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MM-dd-yyyy"
let date:NSDate = dateFormatter.dateFromString(dateStr!)!

查阅文档:年份的格式为“yyy”,小写为y。(你不是第一个犯这个错误的人:)谢谢你,马丁。我最初把它改为小写,而其他一些东西不起作用,所以我只是在一个帮助中把它改为大写;希望它能有所帮助:请注意,在每个苹果的现代iOS系统中,您必须做到这一点:(幸运的是,这更容易!)