Swift NSDate 格式化程序问题

Swift NSDate Formatter Issue

我在 Swift NSDateFormatter 的某个日期遇到了一个奇怪的问题,

这是我的代码:

let stringDate = "25/03/2015"

let dateFormatter = NSDateFormatter()

dateFormatter.dateFormat = "dd/MM/yyyy"

let date = dateFormatter.dateFromString(stringDate)

此代码运行良好,我能够从字符串中获取日期。但是,如果我将日期更改为“25/03/2016”或“31/03/2017”,我总是得到 nil.

这很奇怪,有没有人也遇到过这个问题?有人知道这个奇怪错误背后的原因是什么吗?

我刚试过这个:

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "dd/MM/yyyy"

let date = dateFormatter.dateFromString("25/03/2015")
NSLog("%@", date!);

let date1 = dateFormatter.dateFromString("25/03/2016")
NSLog("%@", date1!);

let date2 = dateFormatter.dateFromString("31/03/2017")
NSLog("%@", date2!);

我的输出是这样的:

2016-03-02 11:31:53.117 SwiftTest[5139:2280171] 2015-03-24 23:00:00 +0000
2016-03-02 11:31:53.117 SwiftTest[5139:2280171] 2016-03-24 23:00:00 +0000
2016-03-02 11:31:53.118 SwiftTest[5139:2280171] 2017-03-30 22:00:00 +0000

看来您的应用中还有其他问题。

您所在的语言环境和时区是否在这些特定日期的午夜改变了夏令时?

这可能是因为 0:00 - 0:59 可能不存在。