Objective c 如何根据核心位置坐标获取本地时区?

Objective c 如何根据核心位置坐标获取本地时区?,objective-c,cocoa-touch,gps,core-location,Objective C,Cocoa Touch,Gps,Core Location,是否可以在cocoa touch中根据gps的坐标获取设备的本地时区?去年我看到这个问题,但没有答案 我真正想要的是与格林尼治标准时间的时差,我不想查询web服务 或者,我可以询问设备设置的时区吗 可以这样做吗?使用[NSTimeZone localTimeZone] 编辑:返回的对象有一个-(NSInteger)secondsFromGMT方法,您可以使用该方法计算与GMT的差异。除非输入中实际包含日期,否则实际上不可能。为什么?因为偏移量随时间而变化。最常见的情况是,北美的时间转换为夏令时,

是否可以在cocoa touch中根据gps的坐标获取设备的本地时区?去年我看到这个问题,但没有答案

我真正想要的是与格林尼治标准时间的时差,我不想查询web服务

或者,我可以询问设备设置的时区吗


可以这样做吗?

使用
[NSTimeZone localTimeZone]


编辑:返回的对象有一个
-(NSInteger)secondsFromGMT
方法,您可以使用该方法计算与GMT的差异。

除非输入中实际包含日期,否则实际上不可能。为什么?因为偏移量随时间而变化。最常见的情况是,北美的时间转换为夏令时,欧洲的时间转换为夏季。不同的位置在不同的时间进行切换。此外,用于确定何时使开关随时间变化的公式。例如,几年前在美国,夏令时被延长了。还有像危地马拉这样的地方,他们有时会尝试夏令时,然后决定明年不这样做


总之,GPS坐标和时区之间并没有一对一的关系。不过,坐标+日期和时区之间存在一对一的关系。但它是一个移动的目标。

这似乎是从应用程序的
defaultTimeZone
获取其值,如果未明确设置,则从
systemTimeZone
获取。有没有办法从经纬度中获取时区?系统中没有内置。您必须自己构建一些东西,也许可以使用上的数据文件,并将用户坐标与其中包含的时区定义进行比较。谢谢,@jenningj。在看了更多的这些之后,我意识到这是多么的困难。看起来有网络服务可以做到这一点,但我明白为什么大多数应用程序只要求你告诉他们时区,或者从城市列表中获取。如果你决定根据纬度和经度计算时区,而不依赖于系统,请在此处阅读我的答案:另请参阅: