Swift NSDate Formatter问题

时间:2016-03-02 10:23:37

标签: ios swift nsdateformatter

我在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

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

2 个答案:

答案 0 :(得分:2)

您是否处于某个区域和时区,夏令时在这些特定日期的午夜时间发生变化?

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

答案 1 :(得分:-1)

我刚试过这个:

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

所以你的应用似乎还有其他问题。