Swift:NSDateFormatter dateFromString在设备上返回零
我发现了一些可以在Obj-c中解决我的问题,但我无法翻译代码,所以我要求一个Swift解决scheme。
我parsing从JSON文件中的一些数据,我得到一个问题检索date; 这里是代码:
println(data) // "Fri, 16 Jan 2015 11:49:00 +0100" var dateFormatter = NSDateFormatter() dateFormatter.dateFormat = "EEE, dd LLL yyyy HH:mm:ss ZZZ" let formattedDate = dateFormatter.dateFromString(data) println(formattedDate) // returns 'Optional(2015-01-16 11:49:00 +0100)' if running on an iOs Simulator // returns 'nil' if runnig on an iPhone
就像我在代码注释中写的那样,如果我在iOs模拟器或操场上运行date,我会正确地获得date的可选types,但如果它在iPhone上运行,则会得到零。
谁能帮忙? 谢谢你的build议..
PS对不起,我的英语不好
对于那些到这里来的人,不要读最初的post的评论 ;)
正如@rintaro指出的那样 – 我的问题也是如此 – 当你使用固定格式的date时,你必须添加一个语言环境 :
如果您使用的是固定格式date,则应首先将date格式程序的语言环境设置为适合您固定格式的内容。 在大多数情况下,最好的语言环境是en_US_POSIX
所以在Swift 3中你将不得不添加
dateFormatter.locale = Locale(identifier: "en_US_POSIX")