xcode 4.2位置模拟器和时区

时间:2012-01-21 23:31:22

标签: iphone xcode nsdate nsdateformatter

我注意到在运行时xcode模拟器中有一个漂亮的设置,我可以更改当前位置,从而模拟基于位置的测试

但是,当我尝试使用NSDateFormatter获取日期时,本地日期仍在PST中。我在太平洋时区

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle]; // Jan 1, 2010
[dateFormatter setTimeStyle:NSDateFormatterShortStyle];  // 1:43 PM

NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[dateFormatter setLocale:usLocale];
[usLocale release];

NSDate *testDate = [NSDate date];
NSLog(@"Local date: %@", [dateFormatter stringFromDate:testDate]);

根据文档,stringFromDate应使用接收器当前设置,该设置应使用日本东京的时区。

这是预期的吗?

1 个答案:

答案 0 :(得分:0)

选择- timezone的{​​{1}} - 属性 - 我认为这是由设备本身(或本例中的计算机)控制的,而不是位置。设置应用程序中有一个设置但是可以让你按位置设置时间,我不确定这是否会改变任何内容,但尝试激活它。

一般提示:总是在设备上测试它 - 我认为“模拟位置”设置也适用于手机。

修改:刚看到一个可能相关的答案,请在设置新位置后尝试拨打NSDateFormatter。这应该触发重置,并希望显示正确的时区。参考:https://stackoverflow.com/a/5987409/267892