如何在Objective-C中格式化Facebook/Twitter日期(来自JSON提要)

jam*_*mes 31 iphone objective-c ios

对于我的iPhone应用程序......

我正在寻找一种格式化Facebook created_timeJSON属性值的方法.

"created_time": "2010-12-01T21:35:43+0000"

我也在寻找一种格式化Twitter日期的方法.

"created_at": "Wed Dec 01 17:08:03 +0000 2010"

我希望将两者都改为格式Thu Nov 18, 2010 06:48 AM或类似的东西.我没有运气NSDateFormatter.

如何使用Objective-C将这些日期从Facebook和Twitter格式化为我想要的格式?

jam*_*mes 67

这是我为Twitter工作的:

NSDateFormatter *df = [[[NSDateFormatter alloc] init] autorelease];
    //Wed Dec 01 17:08:03 +0000 2010
    [df setDateFormat:@"eee MMM dd HH:mm:ss ZZZZ yyyy"];
    NSDate *date = [df dateFromString:[[tweets objectAtIndex: storyIndex] objectForKey: TWITTER_CREATED_AT_JSON_KEY]];
    [df setDateFormat:@"eee MMM dd yyyy"];
    NSString *dateStr = [df stringFromDate:date];
Run Code Online (Sandbox Code Playgroud)

其中tweets是一个NSMutableArray填充NSDictionary对象,storyIndex是行int值(在tableview中),并且TWITTER_CREATED_AT_JSON_KEY是一个NSString带值的常量created_at.在您希望显示日期的任何地方使用dateStr

和Facebook:

NSDateFormatter *df = [[[NSDateFormatter alloc] init] autorelease];
    //2010-12-01T21:35:43+0000  
    [df setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZZ"];
    NSDate *date = [df dateFromString:[[facebook objectForKey:FACEBOOK_POST_CREATED_TIME_JSON_KEY] stringByReplacingOccurrencesOfString:@"T" withString:@""]];
    [df setDateFormat:@"eee MMM dd, yyyy hh:mm"];
    NSString *dateStr = [df stringFromDate:date];
Run Code Online (Sandbox Code Playgroud)

  • Facebook格式的更正:[df setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZZ"]; 这种格式解决了两个问题 - 1.注意资本MM(月),而不是mm 2.在以后调用dateFromString时,不需要用空字符串替换T. (10认同)
  • 对于那些不使用美国或英国语言环境的人来说,这不起作用.您必须将dateformatter的语言环境设置为:[dateForm setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]]; (3认同)

Tho*_*aux 10

我给你解决Facebook api日期时间的解决方案:

parser = [[NSDateFormatter alloc] init];
[parser setTimeStyle:NSDateFormatterFullStyle];
[parser setFormatterBehavior:NSDateFormatterBehavior10_4];
[parser setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssz"];
Run Code Online (Sandbox Code Playgroud)

请享用 !

法国网络代理商eBuildy