NSDateFormatter在IOS10中返回nil

参见英文答案 >
NSDateFormatter dateFromString:stringDate returning nil in iOS 8.3                                    1个

在iOS 10上运行时,以下代码在XCode 8中崩溃(在以前的iOS版本上没有崩溃):

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SS'Z'"
dateFormatter.timeZone = NSTimeZone(name: "UTC")
dateFormatter.locale = NSLocale.currentLocale()


let date = dateFormatter.dateFromString("2016-09-04T08:32:46.195514289Z")!

发生崩溃是因为日期格式化程序返回nil.我尝试播放并更改dateFormat,但结果总是为零. iOS 10中有什么变化吗?

编辑:当使用Swift 3运行时,相同的代码在Storyboard中工作.似乎问题发生在Swift 2.3和iOS 10上

最佳答案 适合我.虽然我使用的是Swift 3:

let df = DateFormatter()
df.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SS'Z'"
df.timeZone = TimeZone(abbreviation: "UTC")
df.locale = NSLocale.current
let date = df.date(from: "2016-09-04T08:32:46.195514289Z")
print("date: \(date)")

打印:

date: Optional(2016-09-04 08:32:46 +0000)
点赞