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_DE
和 en_US
都适用于通常的时区(如 EDT
),但不常见的 en_DE
不适用于所有时区。所以解决方法是使用 en_US
作为语言环境。
在 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_DE
和 en_US
都适用于通常的时区(如 EDT
),但不常见的 en_DE
不适用于所有时区。所以解决方法是使用 en_US
作为语言环境。