如何解析日期字符串?
问题描述:
我要解析日期这样的:如何解析日期字符串?
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)
答
这是由于这样的事实,即当前区域可能不适合。将它设置为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
答
问题解决了。
这个问题只是来自XML RSS的原始日期字符串中的隐藏字符(换行符= \ n)。 我解决了它用空字符串替换隐藏的字符。
dataStr = [dataStr stringByReplacingOccurrencesOfString:@"\n" withString:@""];
感谢您的帮助。
定义“不起作用”。 –
寻求调试帮助的问题(“为什么这个代码不工作?”)必须包含所需的行为,特定的问题或错误,以及在问题本身中重现问题所需的最短代码。 –
@HotLicks:解析日期意味着期望的行为,包括最短的代码。只缺少足够的错误描述。 – vikingosegundo