Ios 如何获得特定时区的准确时间

Ios 如何获得特定时区的准确时间,ios,nsdate,nstimer,nstimezone,Ios,Nsdate,Nstimer,Nstimezone,我正在做一个应用程序。因为我必须显示用户在应用程序中的时间。为此,我计算了应用程序打开时间和当前时间之间的差,每秒钟显示一次。但是如果我尝试更改设备时间,这个结果也在改变。但是我想显示如果用户也改变了时间的确切结果。那么如何根据时区获得准确的时间呢 您可以在initialize方法中将应用程序的默认时区设置为GMT @interface AppDelegate () @property (nonatomic, strong) NSDate startDate; @end @implement

我正在做一个应用程序。因为我必须显示用户在应用程序中的时间。为此,我计算了应用程序打开时间和当前时间之间的差,每秒钟显示一次。但是如果我尝试更改设备时间,这个结果也在改变。但是我想显示如果用户也改变了时间的确切结果。那么如何根据时区获得准确的时间呢

您可以在
initialize
方法中将应用程序的默认时区设置为GMT

@interface AppDelegate ()

@property (nonatomic, strong) NSDate startDate;
@end

@implementation AppDelegate

+ (void)initialize
{
    [NSTimeZone setDefaultTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];
}

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    self.startDate = [NSDate date];
}

- (void)applicationDidEnterBackground:(UIApplication *)application
{
     NSLog(@"User has stayed for %4.2f seconds.", [[NSDate date] timeIntervalSinceDate:self.startDate]);
}

此外,当您将日期的字符串表示形式转换为实际的
NSDate
实例时,不要忘记为
NSDateFormatter
实例设置时区

当应用程序进入后台,用户更改时间并返回时,是否给出正确的结果?