我在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
。
这很奇怪,有没有人也有这个问题?有谁知道这个奇怪错误背后的原因是什么?
答案 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
所以你的应用似乎还有其他问题。