我在Swift 2中尝试将字符串(日期)从RSS Feed(“pubDate”)转换为 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)
问题是,在这种情况下日期对象总是为。问题是输入字符串的格式。如果我将dateString更改为“2016-08-16”,则 NSDate对象正确构建。
所以我不知道如何让这个NSDate工作。日期之前的字符串操作?或者dateFormatter上的一些选项?
先谢谢你的帮助!
答案 0 :(得分:2)
虽然有关如何从字符串转换为日期的问题主要是关于指定正确的格式字符串,但您应该阅读Apple对NSDateFormatter and 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)