如何设置从twitter到NSDATE的日期字符串

Jas*_*son 5 iphone formatting cocoa datetime objective-c

您从twitter回来的日期是这种格式Fri Aug 07 12:40:04 +0000 2009.我可以毫无问题地将值分配给NSDate.但是,当我尝试使用NSDateFormatter时,我得到一个零回复给我.我错过了什么?

    NSDate *createdAt = [messageData objectForKey:@"created_at"];
    NSDateFormatter *format = [[NSDateFormatter alloc] init];
    [format setDateFormat:@"M/d/yy HH:mm"];

    NSString *dateString = [format stringFromDate:createdAt];


    label.text = dateString;
Run Code Online (Sandbox Code Playgroud)

jam*_*mes 11

我有同样的问题,我无法用当前的上述答案解决它.所以这对我有用:

NSDateFormatter *df = [[[NSDateFormatter alloc] init] autorelease];
    //Wed Dec 01 17:08:03 +0000 2010
    [df setDateFormat:@"eee, dd MMM yyyy HH:mm:ss ZZZZ"];
    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您想要的任何地方显示日期

  • 似乎Twitter再次改变了格式,以"@"eee MMM dd HH:mm:ss ZZZZ yyyy"`(或'Tue Feb 08 15:54:03 +0000 2011') (6认同)

amr*_*rox 4

如果与 @"created_at" 键关联的对象是有效的 NSDate 对象,则此代码应该可以工作。

然而,我猜测它实际上是一个 NSString。如果是这样,它将产生您所描述的行为。

如果我是对的,上面的代码片段将 NSString 对象分配给 NSDate 引用。NSDictionary 返回无类型的“id”对象,因此编译器不会向您发出类型不匹配警告。

您必须使用 NSDateFormatter 将字符串解析为 NSDate (请参阅 dateFromString:)。