Since dateString is already GMT, the trick is to set the time zone to GMT on inputFormatter. This code works as expected:
NSTimeZone *gmt = [NSTimeZone timeZoneWithAbbreviation:@"GMT"]; NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; [dateFormatter setTimeZone:gmt]; NSString* dateString = [dateFormatter stringFromDate:[NSDate date]]; NSLog(@"Date/Time is %@", dateString); NSDateFormatter *inputFormatter = [[[NSDateFormatter alloc] init] autorelease]; [inputFormatter setTimeZone:gmt]; [inputFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; NSDate* date = [inputFormatter dateFromString:dateString]; NSLog(@"Date/Time is %@", date);
returns:
2011-01-04 16:50:35.369 WA[888:207] Date/Time is 2011-01-04 21:50:35 2011-01-04 16:50:35.370 WA[888:207] Date/Time is 2011-01-04 21:50:35 +0000
source share