带有RSS pubDate的NSDateFormatter

Phi*_*pxp 2 objective-c feedparser

将rss pubdate字符串转换为NSDate对象时遇到一些问题.

<pubDate>Fri, 09 Sep 2011 15:26:08 +0200</pubDate>

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"EEE, d MMM yyyy HH:mm:ss Z"];
NSDate *date = [dateFormatter dateFromString:currentDate];
NSLog(@"DateObject : '%@'", date);
[dateFormatter release];
Run Code Online (Sandbox Code Playgroud)

我总是得到

 [44157:10d03] DateObject : '(null)'
Run Code Online (Sandbox Code Playgroud)

Dav*_*ong 7

你需要:

  • dd而不是d,因为这一天是零填充
  • ZZ而不是Z,因为它不包括时区缩写名称

更多信息:http://unicode.org/reports/tr35/tr35-4.html#Date_Format_Patterns


当我运行这个:

int main (int argc, const char * argv[]) {
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

    NSString *str = @"Fri, 09 Sep 2011 15:26:08 +0200";

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss ZZ"];
    NSDate *date = [dateFormatter dateFromString:str];
    NSLog(@"DateObject : %@", date);
    [dateFormatter release];

    [pool drain];
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我明白了:

EmptyFoundation [19926:407] DateObject:2011-09-09 13:26:08 +0000