格式化NSDate

时间:2009-11-19 12:35:15

标签: iphone datetime rss nsdate

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

我正在尝试将此字符串值转换为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值之外,我还想使用手机上的本地化日期格式对其进行格式化。

任何指针都会有很大的帮助。

亲切的问候

2 个答案:

答案 0 :(得分:6)

检索dateFormat:

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    

查看文档,了解哪种格式化程序最适合您。

答案 1 :(得分:0)

实际上RSS源中的日期格式可能不同,因此解析它的最佳方法是

[NSDate dateFromInternetDateTimeString:processedText formatHint:DateFormatHintRFC822];

这不是一个标准函数,可以在https://gist.github.com/953664

找到它的库