2015-07-10 246 views
-1

我要解析日期這樣的:如何解析日期字符串?

Thu, 09 Apr 2015 11:31:14 GMT 
Tue, 05 May 2015 15:06:37 GMT 
Tue, 09 Dec 2014 08:28:19 GMT 

我使用NSDateFormatter。 我試過@"E, d M y H:m:s Z"@"EEE, d MMM yyyy HH:mm:ss zzz"和許多其他但它不起作用。
你能幫我嗎?

​​

編譯時,我沒有任何錯誤,但我的NSLog輸出爲:

Date: Tue, 09 Dec 2014 08:28:19 GMT Converted: (null) 
+0

定義「不起作用」。 –

+0

尋求調試幫助的問題(「爲什麼這個代碼不工作?」)必須包含所需的行爲,特定的問題或錯誤,以及在問題本身中重現問題所需的最短代碼。 –

+0

@HotLicks:解析日期意味着期望的行爲,包括最短的代碼。只缺少足夠的錯誤描述。 – vikingosegundo

回答

2

這是由於這樣的事實,即當前區域可能不適合。將它設置爲en_US_POSIX

for (NSString* dataStr in @[@"Thu, 09 Apr 2015 11:31:14 GMT",@"Tue, 05 May 2015 15:06:37 GMT", @"Tue, 09 Dec 2014 08:28:19 GMT"]){ 

    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
    dateFormat.locale = [NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]; 
    [dateFormat setDateFormat:@"E, d M y H:m:s Z"]; 
    NSDate *dte = [dateFormat dateFromString:dataStr]; 
    NSLog(@"Date: %@ Converted: %@",dataStr, dte); 
} 

回報

Date: Tue, 05 May 2015 15:06:37 GMT Converted: 2015-05-05 15:06:37 +0000 
Date: Thu, 09 Apr 2015 11:31:14 GMT Converted: 2015-04-09 11:31:14 +0000 
Date: Tue, 09 Dec 2014 08:28:19 GMT Converted: 2014-12-09 08:28:19 +0000 

更多信息Technical Q&A QA1480: NSDateFormatter and Internet Dates

-1

問題解決了

這個問題只是來自XML RSS的原始日期字符串中的隱藏字符(換行符= \ n)。 我解決了它用空字符串替換隱藏的字符。

dataStr = [dataStr stringByReplacingOccurrencesOfString:@"\n" withString:@""]; 

感謝您的幫助。