How to format Facebook/Twitter dates (from the JSON feed) in Objective-C How to format Facebook/Twitter dates (from the JSON feed) in Objective-C ios ios

How to format Facebook/Twitter dates (from the JSON feed) in Objective-C


here is what i have working for 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];

where tweets is an NSMutableArray filled with NSDictionary objects, storyIndex being the row int value (in the tableview), and TWITTER_CREATED_AT_JSON_KEY being a constant NSString with value created_at. use the dateStr wherever you wish to display the date

and 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];


I give you the solution to parse Facebook api date time:

parser = [[NSDateFormatter alloc] init];[parser setTimeStyle:NSDateFormatterFullStyle];[parser setFormatterBehavior:NSDateFormatterBehavior10_4];[parser setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssz"];

Enjoy !

eBuildy, french Web Agency


@binnyb's answer is perfect for Objective-C; for those looking to do the same thing using Swift, here's a translated version of his answer:

For the Twitter Date:

    var df = NSDateFormatter()    //Wed Dec 01 17:08:03 +0000 2010    df.dateFormat = "eee MMM dd HH:mm:ss ZZZZ yyyy"    var date = df.dateFromString(twitterDateString)    df.dateFormat = "eee MMM dd yyyy"    var dateStr = df.stringFromDate(date!)

For the Facebook Date:

    var df = NSDateFormatter()    //Wed Dec 01 17:08:03 +0000 2010    df.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZ"    var date = df.dateFromString(facebookDateString)    df.dateFormat = "eee MMM dd yyyy"    var dateStr = df.stringFromDate(date!)

where twitterDateString and facebookDateString are the date strings obtained from their respective APIs.