2009-11-19 69 views
0

我正在从RSS源中提取数据。 Feed中的一个键是表示项目创建日期和时间的字符串。格式化NSDate

我想将此字符串值转换为NSDate。字符串值从RSS馈送返回:2009-11-18T22:08:00 + 00:00

我尝试以下代码无济于事:

NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
[df setDateFormat:@"yyyyMMdd HH:mm"]; 
NSDate *myDate = [df dateFromString: [[storedDates objectAtIndex:indexPath.row] objectForKey: @"UsersDate"]]; 

理想;除了将该值转换为NSDate值之外,我还想使用手机上的本地化日期格式对其进行格式化。

任何指针将是一个很大的帮助。

亲切的问候

+0

消息就是T应该在2009-11-18T22:08:00 + 00:00?或者是一个错字? – nduplessis 2009-11-19 12:41:57

回答

6

要检索的日期格式:

NSDateFormatter *df = [[NSDateFormatter alloc] init]; 
[df setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZ"]; 
NSDate *myDate = [df dateFromString: [[storedDates objectAtIndex:indexPath.row] objectForKey: @"UsersDate"]]; 

您可以使用预定义的格式,如果你想根据用户的语言环境格式化时间和日期:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateStyle:NSDateFormatterShortStyle]; 
[dateFormatter setTimeStyle:NSDateFormatterLongStyle]; 
NSLog(@"%@",[dateFormatter stringFromDate:someDate]); 
[dateFormatter release]; // don't forget to release the dateformatter  

查看文档以查看哪种格式化器最适合您。在RSS提要

+0

对不起忘了回答关于解析字符串日期的问题。看到我更新的回复 – FelixLam 2009-11-19 12:50:56

+0

非常感谢Felix。 – 2009-11-19 13:20:24

0

其实日期格式可能不同,所以最好的方法来分析它是继

[NSDate dateFromInternetDateTimeString:processedText formatHint:DateFormatHintRFC822]; 

这不是一个标准功能,图书馆因为它可以在这里找到https://gist.github.com/953664