【问题标题】:How to get the exact time of specific timzone如何获取特定时区的确切时间
【发布时间】:2015-03-25 17:47:53
【问题描述】:

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

【问题讨论】:

    标签: ios nsdate nstimer nstimezone


    【解决方案1】:

    您可以在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 实例设置时区。

    【讨论】:

    • 当应用程序进入后台并且用户更改时间并返回时是否给出正确的结果?
    猜你喜欢
    • 2021-03-13
    • 2016-03-01
    • 1970-01-01
    • 2011-07-24
    • 1970-01-01
    • 2021-09-22
    • 2012-01-02
    • 2016-08-23
    • 1970-01-01
    相关资源
    最近更新 更多