【问题标题】:NSDate() not returning UTC +000 after TestFlight installation安装 TestFlight 后 NSDate() 不返回 UTC +000
【发布时间】:2016-09-16 13:18:24
【问题描述】:

我是 Apple TV 流媒体电视应用程序的开发人员。 当我通过试飞安装我的应用程序版本时,日期/时间不是我所期望的。我使用 NSDate() 来检索它。正如我预期的那样,这应该返回 UTC +000,但事实并非如此。为了排除这个假设中的错误,我还尝试了 NSDateFormatter 并使用我的 Apple TV 的语言环境。我的 Apple TV 的时间/区域设置为阿姆斯特丹。我显示 NSDate() 的结果和格式化后的结果。我看到的结果是: NSDate() is not UTC +000 并且在格式化之后,结果不是阿姆斯特丹时间/日期。 这只发生在通过试飞安装后。 当我关闭我的应用程序时,将 Apple TV 的语言更改为另一种语言并将其更改回原来的语言,然后重新打开我的应用程序,NSDate() 的结果和格式化的结果是正确的!就像 Apple TV 进行了一些刷新(注意:我更改了语言而不是时间/区域)。 谁能告诉我这里发生了什么以及我的代码中缺少什么?

    private func stringFromDateFormat() -> String {
    let dateFormatForFormatter:String = "dd-MM-yyyy | HH:mm"
    let todaysDate:NSDate = NSDate()
    let locale:NSLocale = NSLocale.currentLocale()
    let dateFormatter:NSDateFormatter = NSDateFormatter()
    dateFormatter.calendar = NSCalendar(calendarIdentifier:NSCalendarIdentifierGregorian)
    dateFormatter.locale = NSLocale(localeIdentifier: locale.localeIdentifier)
    dateFormatter.dateFormat = dateFormatForFormatter
    return dateFormatter.stringFromDate(todaysDate)
    }

当我使用上述函数时,它不会返回阿姆斯特丹时间/日期,但在我的 Apple 设备上设置了这个时区。再说一遍:它只发生在从试飞安装时。我上面描述的设备上奇怪的语言切换使它是正确的。有时显示 NSDate() 是几天,我经历的最糟糕的是 30 天。

【问题讨论】:

    标签: swift nsdate nsdateformatter testflight tvos


    【解决方案1】:

    问题不在于代码或应用程序。我试过的其他应用程序也有同样的问题。这与 Apple TV 无法访问 NTP 有关。似乎在启动 Apple TV 时,它会检索我使用 NSDate() 从存储值中获取的当前时间/日期,并且设备由于某种原因无法刷新。当我更改语言时,Apple TV 会重新启动/刷新,然后就可以访问 NTP。

    【讨论】:

      猜你喜欢
      • 2011-10-27
      • 1970-01-01
      • 1970-01-01
      • 2015-11-01
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多