Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何从地理位置获取UTC世界时?_Ios_Nsdate_Core Location_Cllocationmanager_Utc - Fatal编程技术网

Ios 如何从地理位置获取UTC世界时?

Ios 如何从地理位置获取UTC世界时?,ios,nsdate,core-location,cllocationmanager,utc,Ios,Nsdate,Core Location,Cllocationmanager,Utc,它看起来像CLLocation的timestamp属性获取设备的当前日期和时间。。。我有以下代码片段: - (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations { CLLocation *newLocation = [locations lastObject]; NSDate *eventDate = newLocation.timestamp;

它看起来像
CLLocation
timestamp
属性获取设备的当前日期和时间。。。我有以下代码片段:

- (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);
}
在我写这篇文章的时候,如果我在Xcode的调试区域控制台中打印
eventDate
的描述,我会得到:

打印eventDate的说明: 2015-08-26 15:14:09+0000

如果我更改了设备设置中的日期,我会在
evenDate
中得到错误的日期:

打印eventDate的说明: 2015-07-25 15:16:33+0000

可能我误解了
timestamp
属性中返回的
NSDate
。。。它真的需要您在设备中设置的日期和时间,或者只是提供这些设备设置的格式

关键是,我需要获取位置的UTC时间以向服务器报告,并在不同设备之间进行一些比较,如果用户更改其设备的日期和时间设置,并且我的应用程序发送错误或“假”时间戳,我的应用程序将无法正常运行

在Android应用程序中,似乎可以从GPS获取NMEA数据,然后获取位置的通用时间,但我在iOS中找不到。有可能在iOS中获得它吗


我需要有关此问题的帮助,请提前感谢

您可以通过
NSCalendar
NSDateFormatter
NSLocale
类将时间戳转换为您想要的任何日历或时区

谢谢。这将获得UTC等效的
NSDate
或我拥有的时间戳。。。关键是,我需要的是“真实”UTC时间,而不是与
CLLocation
对象中给定的时间相等的UTC时间,它似乎是从设备而不是GPS数据中获取的。。。不是吗?这些是唯一可用的工具,不幸的是,它们受制于用户可以操纵的系统时间。仍然没有答案吗?