【发布时间】:2015-03-25 17:47:53
【问题描述】:
我正在做一个应用程序。因为我必须显示用户在应用程序中的时间。为此,我计算了应用程序打开时间和当前时间之间的差异每一秒并显示。但是如果我尝试更改设备时间,结果也会发生变化。但是如果用户也更改时间,我想显示确切的结果。那么如何根据该时区获得准确的正确时间。
【问题讨论】:
标签: ios nsdate nstimer nstimezone
我正在做一个应用程序。因为我必须显示用户在应用程序中的时间。为此,我计算了应用程序打开时间和当前时间之间的差异每一秒并显示。但是如果我尝试更改设备时间,结果也会发生变化。但是如果用户也更改时间,我想显示确切的结果。那么如何根据该时区获得准确的正确时间。
【问题讨论】:
标签: ios nsdate nstimer nstimezone
您可以在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 实例设置时区。
【讨论】: