2016-09-16 65 views
0

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

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天。

回答

0

问题不在代码或应用程序中。我尝试过的其他应用程序也有同样的问题。它与Apple TV无法达到NTP有关。看起来,当启动Apple TV时,它会检索我从存储值中获取NSDate()的当前时间/日期,并且设备出于某种原因无法刷新。当我改变语言Apple TV重新启动/刷新,然后能够达到NTP。