【发布时间】:2013-04-21 05:28:59
【问题描述】:
我正在构建一个依赖于带有 SQL 数据库的服务器的应用程序。数据库会自动存储如下所示的时间戳:
2013-04-26 22:56:05
我的服务器上有一个 URL,其中包含一个 PHP 文件,该文件获取数据并将 echos 以 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 上。
【问题讨论】:
-
实际上,我想我误读了您的问题。我以为你在谈论设置应用程序中的 24 小时时间设置。当您记录
NSDate时,日期始终以 UTC 时间显示。你的两个日期是一样的。每年的这个时间 MDT 是 UTC -6 小时。所以 22:56 MDT 是第二天 04:56 UTC。一切如预期。虽然这并不能完美地解释它,因为 EDT 是 UTC -4 并且您似乎使用的是 EDT,而不是 MDT。
标签: ios json timezone nsdate nsdateformatter