EDT 不适用于 NSDateFormatter

EDT not working with NSDateFormatter

在 iOS 中,我使用 NSDateFormatter 和 DateFormat EEE, dd MMM yyyy HH:mm:ss z

字符串 Sat, 29 Aug 2015 12:34:36 EDT 不起作用,在将 nil 提供给函数 .dateFromString() 时返回 nil。不过,与 GMT (Sat, 29 Aug 2015 12:34:36 GMT) 完全相同的字符串给了我正确的日期。

我在这里错过了什么?

希望这能奏效,我在新西兰,但将语言环境设置为 "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)

所以问题是我使用的语言环境不常见。我住在德国,使用英语作为我的系统语言,所以 Locale 是一个带有标识符 en_DE 的语言。 de_DEen_US 都适用于通常的时区(如 EDT),但不常见的 en_DE 不适用于所有时区。所以解决方法是使用 en_US 作为语言环境。