无论如何,是否可以告诉您手机位于哪个时区/国家/地区?我宁愿不使用定位服务。
这样做的目的是自动路由调用。如果用户在美国,我希望该应用默认为调用美国调用中心。如果用户在另一个国家/地区,我希望它默认为他们的调用中心。
谢谢!
最佳答案
您可以使用以下方法获取本地时区的名称:
NSTimeZone *timeZone = [NSTimeZone localTimeZone];
NSString *tzName = [timeZone name];
名称将类似于
Australia/Sydney
或Europe/Zurich
或America/Denver
。既然听起来您可能只关心非洲大陆,那可能就是您所需要的。如果您需要更多:在http://www.iana.org/time-zones上获取官方时区数据库。下载
tzdata2013g.tar.gz
(或在阅读本文时,为tzdataYYYYx.tar.gz
的最新版本)。该存档中有一个名为zone.tab
的文件,该文件为每个时区提供经度/纬度,例如:CH +4723+00832 Europe/Zurich
+4723+00832
表示纬度= +47º23“,经度= +8º23”。更新:在某些情况下(我不确定是哪个),时区名称可能是较旧的名称,例如
US/Pacific
,但未在zone.tab
中列出。要处理这些问题,还需要获取名为backward
的文件,该文件可以将较早的名称转换为当前名称。将
zone.tab
转换为您的应用可以使用的东西完全取决于您。结果远不及定位服务准确,但可以提供一个总体思路。但是不能保证。在以下几种情况下它将失败: