xcode 4.2 location simulator and Time Zone

二次信任 提交于 2019-12-10 18:22:33

问题


I noticed a nifty setting in the xcode simulator while running that I can change the current location and hence simulate location based tests

However, when I try to get the date using NSDateFormatter, the local date is still in PST. I am in the Pacific Time Zone

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]);

According to the docs, stringFromDate should use the receivers current setting, which should use the timeZone of the Tokyo, Japan.

Is this expected?


回答1:


Chech the - timezone-attribute of the NSDateFormatter - I think this is controlled by the device itself (or your computer in this case), not the location. There is a setting in the settings-app however that lets you set the time by location, I'm not sure if that would change anything, but try activating that.

And a general tips: always test it on a device as well - I think the "Simulate Location"-setting works on the phone as well.

Edit: Just saw an answer that could be relevant, try calling [NSTimeZone resetTimeZone]; after setting a new location. That should trigger a reset and hopefully display the correct timezone. Ref: https://stackoverflow.com/a/5987409/267892



来源:https://stackoverflow.com/questions/8957642/xcode-4-2-location-simulator-and-time-zone

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!