2015-08-26 37 views
0

它看起來像的CLLocationtimestamp屬性接受設備的當前日期和時間......我有這樣的代碼片段:如何從CLLocation位置獲取UTC通用時間?

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations 
{ 
    CLLocation *newLocation = [locations lastObject]; 
    NSDate *eventDate = newLocation.timestamp; 

    long long locTimestamp = [date timeIntervalSince1970] * 1000; 
    NSLog(@"Loc timestamp: %lld:", locTimestamp); 
} 

在我寫這篇文章的那一刻,如果我打印的eventDate在說明在Xcode的調試區控制檯,我得到:

EVENTDATE的印刷描述: 2015年8月26日15時14分09秒+0000

如果我更改設備的設置日期,我得到了evenDate是錯誤的日期:EVENTDATE的

印刷描述: 2015-07-25十五點16分33秒+0000

也許我誤解了timestamp屬性中返回的NSDate ......它確實需要您在設備中設置的日期和時間,或者只是給出了這些設備設置的格式?要點是,我需要讓UTC時間的位置報告給服務器,並在不同設備之間進行一些比較,如果用戶更改了他的設備的日期和時間設置,並且我的應用發送了錯誤或「假的「時間戳,我的應用程序不能很好地執行...

似乎Android應用程序可以從GPS獲取NMEA數據,然後獲取通用時間的位置,但我無法在iOS版。是否有可能在iOS?

我需要與此問題的幫助,在此先感謝

回答

0

您可以將時間戳轉換成你通過NSCalendarNSDateFormatterNSLocale類想要的任何日曆或時區。 Docs here

+0

謝謝。這將得到UTC NSDate或時間戳的等價物......重點是,我需要「實際」UTC時間,而不是UTC時間,我在CLLocation對象中給出的時間似乎是從設備取而不是從GPS數據中取得的......不是嗎? – AppsDev

+0

這些吃了唯一可用的工具,不幸的是它們受制於用戶可以操縱的系統時間。 – rmp