Swift 3中的DateFormatter

时间:2017-01-06 14:14:24

标签: ios swift date nsdateformatter

所以,我的操场上有一些代码:

extension String {
   func stringToDate(withFormat format:String) -> Date? {
      let df = DateFormatter()
      df.dateFormat = format

      return df.date(from: self) ?? nil
   }
}

struct Some { 
   let date:String
}

let some = Some(date: "Fri, 06 Jan 2017 04:36:17 +0000")

print(some.date.stringToDate(withFormat: "E, dd MMM yyyy HH:mm:ss Z") ?? "ooops")

它的工作很好。我收到了我预期的日期 - 2017-01-06 04:36:17 +0000 但在我的应用程序中,相同的代码和相同的日期字符串无法正常工作

游乐场: Playground

APP:App

1 个答案:

答案 0 :(得分:2)

您可能在游乐场和应用程序中有不同的默认语言环境。

您可以使用print(df.locale)进行检查。

E.g。如果您将区域设置设置为ru_RU

df.locale = Locale(identifier: "ru_RU")

然后你的日期将不会被解析。

要像@MartinR建议的那样将稳定的解析结果集语言环境设置为en_US_POSIX