NSDateFormatter混淆了24小时的时间

时间:2013-04-26 23:25:45

标签: ios json timezone nsdate nsdateformatter

我正在构建一个依赖带有SQL数据库的服务器的应用程序。数据库自动存储如下所示的时间戳:

2013-04-26 22:56:05    

我的服务器上有一个URL,其中包含一个获取数据的PHP文件,echo将其作为JSON返回给应用程序。

当应用获取数据时,时间戳仍然相同 - timestamp = "2013-04-26 22:56:05";

NSString *timestamp = [mArray[1] objectForKey:@"timestamp"];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setTimeZone:[NSTimeZone timeZoneWithName:@"EDT"]];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *date = [formatter dateFromString:timestamp];
NSLog(@"NSDATE: %@", date);

它出现为:NSDATE: 2013-04-27 04:56:05 +0000。这显然不一样。

我的服务器是北弗吉尼亚州(EDT)的Linux机器,我是MDT。

1 个答案:

答案 0 :(得分:0)

终于明白了。

我的服务器是在UTC时间!我改变了

[formatter setTimeZone:[NSTimeZone timeZoneWithName:@"EDT"]];

[formatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];

现在它按预期工作。