在iOS中,我使用NSDateFormatter
和DateFormat EEE, dd MMM yyyy HH:mm:ss z
。
字符串Sat, 29 Aug 2015 12:34:36 EDT
不起作用,并在赋予函数.dateFromString()时返回nil
。与GMT完全相同的字符串(Sat, 29 Aug 2015 12:34:36 GMT
)给了我正确的日期。
我在这里缺少什么?
答案 0 :(得分:1)
所以问题是我使用的语言环境不是常用的语言环境。我住在德国并使用英语作为我的系统语言,因此Locale是一个标识为en_DE
的语言环境。 de_DE
和en_US
都使用通常的时区(例如EDT
),但不常见的en_DE
不适用于所有时区。所以解决方法是使用en_US
作为区域设置。
答案 1 :(得分:-1)
希望这应该有效,我在新西兰,但将地区设置为" EDT"
let string = "Sat, 29 Aug 2015 12:34:36 EDT"
let formatter = NSDateFormatter()
formatter.locale = NSLocale(localeIdentifier: "EDT")
formatter.dateFormat = "EEE, dd MMM yyyy hh:mm:ss z"
let localDate = formatter.dateFromString(string)