If you need your times to match on server and app, you can just set the time zone of your date formatter you use for converting the JSON date string to an NSDate to use GMT when you get it from the web service. So your date formatter should be initialized like this:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"YYYY-MM-dd'T'HH:mm:ss'Z'"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
Then get your date string from the JSON and create a date with it:
NSDate *dateFromServer = [dateFormatter dateFromString:[json valueForKey:@"created_at"]]
// Do something with dateFromServer like save it to CoreData
Then, later on, when you want to display that date, just create another date formatter that you want to use to display the date in your local time. NSDate will default to the system timezone and it should display the correct time.
NSDateFormatter *displayDateFormatter = [[NSDateFormatter alloc] init];
[dispalyDateFormatter setDateFormat:@"MMM dd, YYYY"]; // ex. Jul 21, 2012
NSDate *dateFromCoreData = [managedObject valueForKey:@"CreatedAt"];
NSString *dateString = [displayDateFormatter stringFromDate:dateFromCoreData];
// Display your date string in a UILabel or Table View Cell, etc.
Best regards.