- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
希望你一切顺利。
所以我正在开发时区 iOS 应用程序。该应用程序要求我们有一个人口稠密的城市列表,并且当用户选择一个时,它会确定构建 NSTimeZone 对象(然后我们将其用于 NSDate 转换)所需的 Olson Timezone ID。
我已经能够获得城市列表及其相应的纬度和经度,我计划将其输入 Geoname 的时区服务端点,以确定每个城市的上述 Olson 时区 ID。
问题是我需要发出的请求量很大,我想知道是否有更简单的解决方案来解决我的问题。任何建议/想法将不胜感激。
谢谢大家!
最佳答案
对于遇到同样问题的人,以下是我最终解决问题的方法。
我从 Geonames.org 下载了一个制表符分隔的列表,其中包含一个城市列表,其中还包含每个城市的奥尔森时区 ID。您可以从 Geoname 的导出转储链接(见下文)下载几个不同的列表,但我选择了 cities5000.zip 列表,以便获得一个相当全面的城市列表而不至于过于臃肿。
您可以在以下链接中找到有关列表的下载链接和信息: http://download.geonames.org/export/dump/readme.txt
因为列表包含了很多不必要的信息(比如lat和lng坐标),并且因为我需要数据为.plist格式以便于在iOS应用程序中使用,所以我写了一个简单的Python脚本将从列表中提取城市名称和时区,根据城市名称按字母顺序对它们进行排序,然后转换为 .plist 格式。
感兴趣的 friend ,python脚本如下:
import json
import httplib
import os
cities = ()
rows = []
# Open up the tab delim list from Geonames.org
with open("cities15000.txt") as file:
lines = file.readlines()
# Reading each line in the list
for line in lines:
comps = line.split('\t')
city = comps[1].strip()
timezone = comps[17].strip()
# Make sure there are no duplicates
if not city in cities:
cities = cities + (city,)
row = {'city':city,'timezone':timezone}
rows = rows + [row,]
# Sort the rows based on the city name
def cmp(a,b):
if a['city'] > b['city']:
return 1
elif a['city'] == b['city']:
return 0
else:
return -1
rows.sort(cmp)
# Convert the array to json and then to plist
jsonString = json.dumps(rows)
with open("cities.json", "w") as jsonFile:
jsonFile.write(jsonString)
os.system('plutil -convert xml1 cities.json -o cities.plist')
关于iOS 开发 - 将城市与 NSTimezone 离线关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20414724/
当我启动我的应用程序时,我将我的默认时区设置为 GMT[NSTimeZone setDefaultTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT
我想在标签上显示“EDT”。我使用了下面的代码,发现它适用于 iphone6、6+ 和 iphone4 (iOS 7.1)。但是在 iPhone5s(iOS 8.2)、iPhone5(iOS 7.1)
我在 OS X 中有时区:欧洲中部夏令时(自动基于位置)。在模拟器上运行我的代码时,我得到了这些结果: NSTimeZone *tz = [NSTimeZone localTimeZone]; //
我想(至少)获取时区的国家/地区名称。任何潜在的方法都没有提供这一点: 姓名, 本地化名称:区域设置:, 描述 我注意到内置的 iPhone 时钟应用程序可以访问此信息,因为它将伦敦描述为“英国伦敦”
什么时候NSTimeZone(name:"US/Eastern")返回nil? 我看到多次崩溃,堆栈跟踪指向我初始化 NSTimeZone 的代码行。我可以添加一个检查来查看它是否为零。但很想知道为什
这个问题在这里已经有了答案: Where is the iPhone's Date & Time getting its time zone list (3 个答案) 关闭 8 年前。 我正在使用
我创建了一个每周 View (类似于日历),其中包含星期几的标题。我正在使用以下代码创建当前时间: +(NSDate *) getCurrentDate { NSDate* datetime
目前GMT-0700(US/pacific)已进入夏令时 但我从 NSTimeZone 得到“否” NSTimeZone *timeZone = [NSTimeZone timeZoneForSeco
我正在编写一个涉及人们出生时间的应用程序,并且我正在尝试使用 IOS 来获取准确的 GMT 偏移量。我得到的答案显然是错误的,我想知道其他人是否遇到过这些问题,或者是否有任何解决方法。 这是我用来计算
任何人都可以告诉我从 systemTimeZone(NSTimeZone) 中提取时区的想法 我已经添加了示例。 NSTimeZone *localTime = [NSTimeZone systemT
对于 PDT,我想要“-0700”。 我正在获取过去的日期以确定某件事发生了多久。 NSDate *then = [NSDate dateWithString:@"1976-04-01 12:34:5
正如标题所述,我的应用程序在客户端崩溃并通过 Parse 崩溃报告进行报告,但我无法在我这边重现它。 在模拟器和真实设备上一切正常,还从app store下载了应用程序工作完美无缺。但直到今天我仍然收
我想要 CLLocationCoordinate2D 的当前时间。 例如,我在东海岸的一个城市,应该知道加利福尼亚偏远地区的时间。我有 CLLocationCoordinate2D。 CLLocati
我正在开发一款应用程序,该应用程序具有在夜间自动进入黑暗/夜间模式的功能。该应用程序询问用户位置并使用 this algorithm 确定日出/日落时间(世界标准时间) . 唯一不明确的步骤是从 UT
如何在 iOS 中获取时区的三个字母缩写 [NSTimeZone abbreviationDictionary] 给出缩写为 3 个字母的代码。例如: NSZT, PDT, EST 等 但是, NSS
希望你一切顺利。 所以我正在开发时区 iOS 应用程序。该应用程序要求我们有一个人口稠密的城市列表,并且当用户选择一个时,它会确定构建 NSTimeZone 对象(然后我们将其用于 NSDate 转换
服务器返回正确的日期和时间。纽约时区。 2013-09-10 05:37:07 +0000(正确的时间,发表评论的时间) 这是我在应用程序中对其进行格式化的方式: [format setDateFor
在我的 IOS 应用程序中,我有一个 timezoneid,如“America/Los_Angeles”,我想得到它的缩写“PST”。 我写了下面的代码: NSTimeZone* theTimezon
[NSTimeZone localTimeZone] 和 [NSTimeZone systemTimeZone] 有什么区别? 最佳答案 根据NSTimeZone引用 iOS,systemTimeZo
所以这就是在 Objective-C 中对日历代码进行单元测试的问题:时区包含有关夏令时的信息,因此您在夏天编写测试,预计 6 月 10 日的日出将在早上 6:02 发生。您的测试通过了,稍后,您在不
我是一名优秀的程序员,十分优秀!