首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用RSS pubDate的NSDateFormatter

使用RSS pubDate的NSDateFormatter
EN

Stack Overflow用户
提问于 2011-09-11 00:27:18
回答 4查看 2.6K关注 0票数 2

我在将rss pubdate字符串转换为NSDate对象时遇到了一些问题。

代码语言:javascript
复制
<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];

我总是得到

代码语言:javascript
复制
 [44157:10d03] DateObject : '(null)'
EN

回答 4

Stack Overflow用户

发布于 2011-09-11 00:43:53

您需要:

  • dd而不是d,因为日期是zero-padded
  • ZZ而不是Z,因为它不包括时区缩写名称

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

当我运行以下命令时:

代码语言:javascript
复制
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;
}

我明白了:

EmptyFoundation19926:407 DateObject : 2011-09-09 13:26:08 +0000

票数 7
EN

Stack Overflow用户

发布于 2015-10-19 15:29:36

首先,您可以尝试以下代码:

代码语言:javascript
复制
NSString *str = @"Mon, 19 Oct 2015 14:27:28 +0800";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss ZZ"];
NSDate *date = [dateFormatter dateFromString:str];
NSLog(@"DateObject : %@", date);

但是,如果您的DateObject仍然是null格式,则您的区域设置未正确定位为"en_US_POSIX"格式。您需要更改您的区域设置。

代码语言:javascript
复制
NSString *str = @"Mon, 19 Oct 2015 14:27:28 +0800";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss ZZ"];
NSLocale *enUSPOSIXLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
[dateFormatter setLocale:enUSPOSIXLocale];
NSDate *date = [dateFormatter dateFromString:str];
NSLog(@"DateObject : %@", date);

结果是:

DateObject : 2015-10-19 06:27:28 +0000

票数 1
EN

Stack Overflow用户

发布于 2014-04-07 17:26:17

使用:

代码语言:javascript
复制
  NSArray *array=[string componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceCharacterSet]];

将pubDate按空格和换行符拆分,然后使用数组的索引获取要显示的每个元素。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7373035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档