Swift 2:将 RSS pubDate 解析为 NSDate 对象
Posted
技术标签:
【中文标题】Swift 2:将 RSS pubDate 解析为 NSDate 对象【英文标题】:Swift 2: Parse RSS pubDate to NSDate object 【发布时间】:2016-08-20 07:26:47 【问题描述】:我正在尝试在 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 工作。之前对 dateString 的字符串操作?还是 dateFormatter 上的一些选项?
提前感谢您的帮助!
【问题讨论】:
您的日期格式与2016-08-16
匹配。您需要正确的日期格式
Converting NSString to NSDate (and back again)的可能重复
按照以下步骤将 dateFormat 调整为 dateString:i.stack.imgur.com/lkYVY.png
【参考方案1】:
虽然关于如何从字符串转换为日期的问题主要是关于指定正确的格式字符串,但您应该阅读 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)
【讨论】:
以上是关于Swift 2:将 RSS pubDate 解析为 NSDate 对象的主要内容,如果未能解决你的问题,请参考以下文章
SWIFT/iOS:将 XML 数据(RSS 提要)解析为明文,将图像和视频添加到 textview