我找到了可以解决我在Obj-c中的问题的东西,但是我无法翻译代码,所以我要求提供Swift解决方案。
我正在解析JSON文件中的一些数据,并且在检索日期时出现问题;这是代码:
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模拟器上或在操场上运行它,我会正确选择日期的可选类型,但如果它在iPhone上运行,我会得到nil。
有人可以帮忙吗?谢谢你的建议..
P.S。抱歉我的英文不好
答案 0 :(得分:4)
对于其他人来到这里并且没有阅读初始帖子的评论;)
正如@rintaro所指出 - 以及我的问题是什么 - 当您使用固定格式的日期时,您必须添加区域设置:
如果您正在使用固定格式的日期,则应首先设置 日期格式化程序的区域设置适合您的固定格式 格式。在大多数情况下,要选择的最佳语言环境是en_US_POSIX
所以在 Swift 3 中你必须添加
dateFormatter.locale = Locale(identifier: "en_US_POSIX")