获取与iPhone设置应用程序中相似的时区列表

4
我可以使用以下方式获取时区列表:
NSArray *timezoneNames = [NSTimeZone knownTimeZoneNames] ;

但是生成的时区列表并不包括所有主要城市的名称。例如,对于印度,它只显示加尔各答市。而我希望显示新德里(首都)的时区。

因此,我想生成与iOS在其“设置 -> 通用 -> 日期时间 -> 时区”中生成的相同的时区列表,因为它显示了几乎所有世界上的主要城市。我们能否获取此列表?还是需要创建自己的数据库(例如.plist)?


+1 你有找到解决方案吗?如果找到了,请发布你的答案。 - Mehul Mistri
3个回答

4

Settings.app使用一个plist文件来显示时区列表。这个文件的名称为: "all_cities_adj.plist"。 要获取此文件,您需要深入到SDK中。 我在下面提到了遍历路径,您可以在其中找到它。

1.转到您的Xcode所在的文件夹。 2.右键单击该文件夹,然后单击显示包内容。 3.然后ContentsDeveloperPlatformsiPhoneSimulator.platformDeveloperSDKsiPhoneSimulator6.1.sdkSystemLibraryPrivateFrameworksAppSupport.framework 4.在此文件夹中,您可以找到plist文件。

请告诉我是否有帮助...


感谢@Amboj的回答+1,我接受了这个答案。你能否分享实时设备的遍历路径而不是模拟器?否则我们将需要使用这个.plist文件来模拟相同的情况。 - Saurabh Shukla
@Saurabh:根据我的了解,我认为这个plist文件无法从设备中获取。所以我想我们唯一的办法就是使用相同的.plist文件并模拟它。 希望对你有所帮助。感谢您的接受。 - Amboj
这在iOS 8中目前不存在,你知道他们改了什么吗?(也许他们实现了字典功能) - Radu Vlad

0

我也遇到了这个问题,没有办法获得与设置应用程序中相同的时区。

您需要创建自己的列表。


谢谢。如果我们创建自己的列表以添加更多城市,那么面对世界范围内不同的夏令时规则,我们如何识别一个特定城市的时区呢? - Saurabh Shukla

0
首先,您需要下载 .csv 文件,该文件将为您提供国家/城市/时区/地区信息。使用此文件,我们可以显示国家及其城市的列表。当用户选择任何城市时,我们需要将其映射到相应的国家,然后将该国家与设备的时区进行映射([NSTimeZone knownTimeZoneNames];)。
此链接在这方面也可能有用:

按国家和地区获取时区


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接