如何使用NSDateFormatter将NSString转换为NSDate?

我从Web服务获取date,如“2012-07-03 07:26:48”。 从webserviceparsing后,我保存在NSString中。 在将下面的代码中使用的NSString转换为NSDate时,

NSDateFormatter *dateFormatter1 = [[NSDateFormatter alloc] init]; [dateFormatter1 setDateFormat:@"yyyy-MM-dd hh:mm:ss"]; NSString *dateStr = @"2012-07-03 07:26:48"; NSDate *date = [dateFormatter1 dateFromString:dateStr]; NSLog(@"Date : %@", date); The NSLog value is "2012-07-03 01:56:48 +0000"; 

NSLog的值是“2012-07-03 01:56:48 +0000”; 我不知道为什么时间变了。 任何人都可以请帮我做这个?

你需要把时区设为:

 theDateFormatter.timeZone = [NSTimeZone timeZoneForSecondsFromGMT:0]; 

因为它正在考虑GMT时间格式。

你必须设置NSDateFormatter的时区。

默认情况下,date保存为utc格式,而将string转换为nsdate …你可以得到原始时间作为一个string..如果你想改变时区,改变它使用dateformatter ..否则不要更改