EDT无法使用NSDateFormatter

时间:2015-10-31 17:48:36

标签: ios swift date nsdateformatter date-formatting

在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)给了我正确的日期。

我在这里缺少什么?

2 个答案:

答案 0 :(得分:1)

所以问题是我使用的语言环境不是常用的语言环境。我住在德国并使用英语作为我的系统语言,因此Locale是一个标识为en_DE的语言环境。 de_DEen_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)