如何将tz数据库名称映射到城市和国家/地区名称?

时间:2011-03-29 10:50:35

标签: cocoa timezone nstimezone zoneinfo

是否有公共可用的映射,从tz数据库(aka zoneinfo数据库,又名Olson数据库)ID到城市和国家/地区?例如:

"Pacific/Auckland" => "Auckland, New Zealand"
"Europe/Copenhagen" => "Copenhagen, Denmark"
"Europe/Paris" => "Paris, France"
"Europe/Moscow" => "Moscow, Russia"
"Asia/Tokyo" => "Tokyo, Japan"
"Asia/Baghdad" => "Baghdad, Iraq"
"Africa/Cairo" => "Cairo, Egypt"

......等等。

理想情况下,映射会:

  • 以不同语言提供,"Europe/Paris"以英语显示"Paris, France",瑞典语为"Paris, Frankrike",日语为"パリ、フランス"
  • 为每个tz条目提供多个选项以覆盖更多城市。例如,堪培拉(澳大利亚国会大厦)不在tz数据库中,但可以映射到"Australia/Sydney"

iPhone上内置的World Clock应用程序实现了这一目标。 iOS上的时区API依赖于tz数据库,但是当为新世界时钟选择时区时,用户可以选择“堪培拉,澳大利亚”,“悉尼,澳大利亚”,“巴格达,伊拉克”,“巴黎,法国”等。世界时钟应用程序可能使用的基础NSTimeZone API不会公开此信息,因此数据必须在应用程序中提供,而不是在底层操作系统中提供。

有谁知道可以找到这种映射的位置?

1 个答案:

答案 0 :(得分:3)

此代码包含国家/地区名称到时区的地图...

https://gist.github.com/986163