Swift 2:将 RSS pubDate 解析为 NSDate 对象

Mic*_*ael 1 nsdate nsdateformatter swift2

我正在尝试将字符串(日期)从 RSS 提要(“pubDate”)转换为Swift 2 中的NSDate 对象

let dateString:String = "Tue, 16 Aug 2016 15:27:33 +0000"

let dateFormatter = NSDateFormatter()
dateFormatter.dateStyle = NSDateFormatterStyle.ShortStyle
dateFormatter.dateFormat = "yyyy-MM-dd"

let date = dateFormatter.dateFromString(dateString)
print(date)
Run Code Online (Sandbox Code Playgroud)

问题是,在这种情况下,日期对象始终为 nil。问题是输入字符串格式。如果我将 dateString 更改为“2016-08-16”,NSDate 对象构建正确

所以我不知道如何让这个 NSDate 工作。之前对dateString进行字符串操作?或者 dateFormatter 上的一些选项?

感谢您提前提供帮助!

Cod*_*ent 5

虽然有关如何将字符串转换为日期的问题主要是关于指定正确的格式字符串,但您应该阅读 Apple 对NSDateFormatter 和 Internet Dates 的说明。简短的版本是您应该始终将本地指定为en_US_POSIX

let dateString = "Tue, 16 Aug 2016 15:27:33 +0000"

let dateFormatter = NSDateFormatter()
dateFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
dateFormatter.dateFormat = "E, d MMM yyyy HH:mm:ss Z"

let date = dateFormatter.dateFromString(dateString)
print(date)
Run Code Online (Sandbox Code Playgroud)