2016-08-20 50 views
0

我正嘗試從RSS頻道( 「pubdate的」)轉換字符串(日期)的NSDate對象在夫特2.夫特2:解析RSS 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上的一些選項?

感謝您提前幫忙!

+1

您的日期格式匹配'2016-08-16'。您需要適當的日期格式 – vadian

+0

[將NSString轉換爲NSDate(並再次返回)]可能的重複(http://stackoverflow.com/questions/3917250/converting-nsstring-to-nsdate-and-back-again) – vadian

+0

適應你的dateFormat到你的日期字符串,按照這個:http://i.stack.imgur.com/lkYVY.png – Moritz

回答

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)