【问题标题】:How to get the current time instead of device time in iOS如何在 iOS 中获取当前时间而不是设备时间
【发布时间】:2015-09-02 08:05:31
【问题描述】:

我使用[NSDate date] 来获取当前时间。 如果用户不更改时间,一切正常...我的意思是如果用户手动更改而不是自动设置。 那我怎么才能得到原来的时间呢?

谢谢!

【问题讨论】:

  • 如果您不信任设备时间,则需要使用 NTP 调用外部服务
  • 有没有可能代替NTP服务。如果假设我处于离线状态并更改了日期,并在一段时间后将日期设置为自动。那么苹果是如何在离线状态下获得原始时间的..
  • 那么iOS设备离线时可以同步时间吗?在这种情况下,Apple 可能会使用作为 GPS 信号一部分的时间戳。或者他们使用蜂窝基站广播的时间戳。两者都不适合您。
  • @MatthiasBauch 我停止了我的定位服务,我的 iPhone 中没有 sim 但仍然有时间,苹果怎么可能?

标签: ios nsdate


【解决方案1】:

你找不到这个。我想到的唯一方法是从您的服务器获取日期.. :(

【讨论】:

  • 如果服务器在不同的时区,如何根据用户时区进行转换。
  • 看看这个答案stackoverflow.com/questions/29406819/… 基本上你在UTC中保持日期,当从服务器获取它时,你在创建NSDate时添加本地时区
  • 希望这是唯一的方法,无法从 Apple 服务器获取时间
  • 我认为应该有任何全球服务来获取原始UTC时间而不是获取我们的服务器时间
  • 应该是。但从我搜索的内容来看,我没有找到任何可能的服务器解决方案。
【解决方案2】:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];                               
// display in 12HR/24HR (i.e. 11:25PM or 23:25) format according to User Settings
    [dateFormatter setTimeStyle:NSDateFormatterShortStyle];

   NSString *startTime = [dateFormatter stringFromDate:startDateTime];                   

   NSString *endTime = [dateFormatter stringFromDate:endDateTime];

   NSLog(@"User's current time %@ and end Time %@ in their preference format",startTime,endTime);

【讨论】:

    猜你喜欢
    • 2016-03-01
    • 2015-10-24
    • 2015-01-14
    • 1970-01-01
    • 2023-03-20
    • 2013-03-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多