fbpx
维基百科

时区信息数据库

时区信息数据库,又称TZ databaseZoneinfo database,是一个主要应用于电脑程序以及操作系统的,可协作编辑世界时区信息的数据库[2]。由于该数据库由David Olson创立,因而有些地方也将其称作Olson数据库[3]。数据库由Paul Eggert进行编辑和维护[4]

tz数据库按照自1970年至今的本地时间,将世界划分为不同区域。本图是根据2012c版的数据库,对南极洲之外区域的划分[1]

它的显著特色是由上面提到的Paul Eggert设计的一套通用时区命名规则,例如"America/New_York"和"Europe/Paris"[5]。数据库试图记录自1970年(Unix元年)以来时区和城市的变化[6],并且还包含一些时间的转换,例如夏令时闰秒[7]

历史 编辑

该项目可以追溯至1986年之前[8]。项目的数据库和一些涉及到的源代码已经释放到公有领域[9]。通常,数据库会每年更新若干次,并发布变更公告[10]

时区的定义 编辑

在时区信息数据库中,“时区”被定义为自1970年当地时间统一的国家及地区[11]。这种定义方法关注于一个具有相同时间的地理区域,它与其他对时区的定义方法不同的是,其他方法关注于不同时区与本初子午线之间的时差。因而数据库中定义的每个时区都会记录一系列对协调世界时的时差,同一时区内一般会包含标准时间和夏令时两种。

时区的命名 编辑

为了更容易地理解,每个时区按照“区域/位置”格式,得到一个独有的名称,例如“America/New_York”。英文地名中的空格用下划线“_”代替,连词符“-”只在英文地名本身包含时使用。

区域 编辑

“区域”指的是大洲大洋名称以及Etc。大陆和海洋名称中包括:非洲美洲亚洲欧洲大洋洲南极洲太平洋大西洋印度洋北冰洋

Etc用作一些管理时区,具体而言例如“Etc/UTC”,意为协调世界时Coordinated Universal Time)。为了与POSIX标准统一,以“Etc/GMT”标记的时区将保留时区符号,即在格林威治时间(GMT)以西的区域的时区符号为正,以东区域符号为负。

地点 编辑

“地点”指的是是在区域中的特定地点的名称,通常是城市或小岛屿的名称。

由于政权更替以及边界的变动,国家名称不能稳定地描述一个区域,故不适合用来命名时区。相比之下,大城市的名称更加固定。然而,数据库的维护者们想为每一个国家代码添加至少一个时区,这样很多用户访问数据库的界面就能够得到优化。另外,(管理者们)还想让时区的地点在地理上更加紧凑,在未来时区可能发生的变化中,不会将原有的时区分割为不同的时区[來源請求]

通常会选择时区内一个人口多的城市作为该时区的名称,也有使用其他城市名称的情况,例如使用一些更加有名或不易引起歧义的城市作为名称[來源請求]。如果一个城市名发生了变化,则会在未来的版本中生成该城市的别名[來源請求],这样无论通过哪个名称访问,结果都会指向数据库中同一条记录。

有时候,“地点”本身也是一个复合名称,例如“America/Indiana/Indianapolis英语America/Indiana/Indianapolis”时区。目前数据库中存在的三级时区名称包括:“America/Argentina/...”、“America/Kentucky/...”、“America/Indiana/...”和“America/North_Dakota/...”。

由于“地点”的命名会选取这个区域具有代表性的名称,因而不是每个城市都有一个以它命名的时区,例如没有“America/Boston”这个时区。此外,数据库中不同位置尽管有不同的名称,它们也有可能目前拥有同一个时区,例如一些历史上曾经分处不同时区(“America/Detroit”和“America/New_York”)和一些在不同国家的位置(“Europe/Prague”和“Europe/Bratislava”)。

时区数据 编辑

对于那些有多个时间偏移(通常指的是标准情况和夏令时情况下两个变量)的时区,时区信息数据库会记录准确的偏移变换时刻。数据记录的格式也可以将转换过程中日期和时间的变化记录起来。

Zone.tab文件 编辑

zone.tab英语zone.tab文件存在于互联网中,文件格式的相关说明可参考文件中的注释,如下所示:

原文

# This file contains a table with the following columns: # 1. ISO 3166 2-character country code. See the file `iso3166.tab'. # 2. Latitude and longitude of the zone's principal location # in ISO 6709 sign-degrees-minutes-seconds format, # either +-DDMM+-DDDMM or +-DDMMSS+-DDDMMSS, # first latitude (+ is north), then longitude (+ is east). # 3. Zone name used in value of TZ environment variable. # 4. Comments; present if and only if the country has multiple rows. # # Columns are separated by a single tab. # The table is sorted first by country, then an order within the country that # (1) makes some geographical sense, and # (2) puts the most populous zones first, where that does not contradict (1). 

譯文

文件中的表格包含以下幾列:

  1. ISO 3166 2個字符的國家/地區代碼。詳見文件“iso3166.tab”。
  2. 時區代表位置的經緯度,使用ISO 6709標準(符號-度-分-秒)格式表示,即±度度分分±度度度分分或±度度分分秒秒±度度度分分秒秒。前半部分為緯度(北半球為正數),後半部分為經度(東半球為正數)。
  3. TZ環境變量中使用的時區名稱。
  4. 註解,當且僅當該國家有多行記錄時存在。

列之間以一個定位字元分隔。 表格首先依據國家進行排序,對同一國家內部的不同記錄,以下列方式進行排序:

(1)
按照地理位置進行排序
(2)
在不與(1)衝突的先前下,將人口最多的區域插入首位。

1970年之前的数据 编辑

1970年之前的数据由于城市区域的变化需要进行修正,没有必要对整个区域的时区信息进行修正,这是由于新划分的区域仅需要与1970年至今的时钟进行时差比较。

例如,在1963年10月23日至1963年12月9日,巴西只有米纳斯吉拉斯Minas Gerais英语Minas Gerais)、圣埃斯皮里图州Espirito Santo英语Espirito Santo)、里约热内卢州Rio de Janeiro)和圣保罗Sao Paulo英语Sao Paulo)有夏令时,由于自1970年以来圣保罗整个区域内时钟相同,导致一个区域无法从America/Sao_Paulo英语America/Sao Paulo时区中划分出来,这是1970年之前的数据需要修正的原因之一[12]

以柏林时间(Europe/Berlin英语Europe/Berlin)为准的德国标准时间,在1945年之后的英、美、苏三国共同占领区域则是一段时间并未按照柏林时间进行夏令时变换[來源請求]

文件格式 编辑

时区信息数据库(Tz database)以文本文件的形式发布,文件以可阅读的形式记录了的条目规则和时区过渡信息。为便于使用,这些文本文件被编译为与操作系统无关的二进制文件,每个时区对应一个文件。相关的代码包括,被称为zic(Zone Information Compiler,时区信息编译器),以及用来读取其他文件,并将文件中的时区信息应用于应用程序接口(例如localtime()mktime())。

维护 编辑

时区信息相关的代码和数据库由一群志愿者维护。Arthur David Olson侧重于代码的编辑,Paul Eggert则侧重于数据库。计划变更的条目会被送到项目的邮件列表中,在Usenet的comp.time.tz讨论组中。项目源文件发布在FTP服务器elsie.nci.nih.gov上,这些源文件被类似于Debian的软件发行商编译、打包后成为发行版本中的一部分。终端用户可以通过对发行版本的升级来更新数据库,当然这样更新会有一些滞后,或者直接从ftp://elsie.nci.nih.gov/pub/[永久失效連結] 获得源代码,自己编译生成二进制文件。基于类似原则的一个未来维护计划 (页面存档备份,存于互联网档案馆)已经由互联网号码分配局起草完成。

其他标准下的应用 编辑

通用當地數據儲存庫[13]使用UN/LOCODE对区域进行判断[1] (页面存档备份,存于互联网档案馆)。这意味着字符将与国家对应,这是时区信息数据库想要避免的状况。

软件系统中的应用 编辑

时区信息数据库用来处理时区和进行时区转换,已经应用于很多的计算机系统中,包括:

通用當地數據儲存庫國際統一碼部件採納了Olson时区编号被采纳。例如,這裡 (页面存档备份,存于互联网档案馆)是微软Windows操作系统中的时区ID与Olson标准名称的映射关系。

另见 编辑

参考文献 编辑

  1. ^ Mueller, Erik. A map of the TZ timezones of the world [updated 2012-10-08; archived 2012-08-01; cited 2011-06-16].
  2. ^ Eggert, Paul; Olson, Arthur David. Sources for time zone and daylight saving time data. 2007-11-29 [2007-12-03]. (原始内容存档于2012-08-01). 
  3. ^ Olson, Arthur David. Resolved timezone issue? Other issues. New ctime manual page. tz (邮件列表). 1986-12-16. 
  4. ^ Eggert, Paul. . tz (邮件列表). 2005-01. (原始内容存档于2011-09-27). 
  5. ^ Eggert, Paul. proposal for time zone names. tz (邮件列表). 1993-10-20. 
  6. ^ Olson, Arthur David. Re: ist of issues. tz (邮件列表). 1987-03-18. 
  7. ^ Devine, Bob. leap seconds; [0-60] is ok. tz (邮件列表). 1988-06-02. 
  8. ^ Olson, Arthur David. seismo!elsie!tz ; new versions of time zone stuff. tz (邮件列表). 1986-11-24. 
  9. ^ Eggert, Paul. questions and comments on http://tycho.usno.navy.mil/tzones.html. tz (邮件列表). 1995-11-11. 
  10. ^ zoneinfo tzcode and tzdata archives (FTP). [2007-10-30]. 
  11. ^ Theory (text file), contained in the "tzcode" distribution. Version tzcode2007h.tar.gz 2007-10-01 referenced.
  12. ^ Olson, Arthur David. . tz (邮件列表). 2010-01-06 [2011-06-16]. (原始内容存档于2016-04-11). 
  13. ^ CLDR - Unicode Common Locale Data Repository. [2011-06-14]. (原始内容于2011-08-07). 
  14. ^ Olson time zone support and setup. AIX 7.1 information. IBM. [2011-03-12]. (原始内容存档于2012-08-01). 
  15. ^ . IBM. 2007-02-02 [2011-03-11]. (原始内容存档于2011-07-13). 
  16. ^ 2007 daylight savings time changes for Unix. Academic Computing and Communications Center, University of Illinois at Chicago. 2007-02-25 [2008-03-18]. (原始内容存档于2012-08-01). )
  17. ^ 17.0 17.1 AIX O/S updated to support 2007 Daylight Saving Time change. IBM. 2007-10-18 [2011-03-12]. (原始内容存档于2012-08-01). 
  18. ^ Wickremasinghe, Christopher. Introduction of daylight saving time in Western Australia 2006. AIX Wiki. IBM. 2009-03-30 [2011-03-11]. (原始内容存档于2012-08-01). 
  19. ^ . Oracle Corporation. June 2004: 4–14 [2007-10-30]. Part No. B10749-02. (原始内容存档于2008-12-01). 

外部链接 编辑

时区信息数据库, 又称tz, database, zoneinfo, database, 是一个主要应用于电脑程序以及操作系统的, 可协作编辑世界时区信息的数据库, 由于该数据库由david, olson创立, 因而有些地方也将其称作olson数据库, 数据库由paul, eggert进行编辑和维护, tz数据库按照自1970年至今的本地时间, 将世界划分为不同区域, 本图是根据2012c版的数据库, 对南极洲之外区域的划分, 它的显著特色是由上面提到的paul, eggert设计的一套通用时区命名规则, 例如, . 时区信息数据库 又称TZ database Zoneinfo database 是一个主要应用于电脑程序以及操作系统的 可协作编辑世界时区信息的数据库 2 由于该数据库由David Olson创立 因而有些地方也将其称作Olson数据库 3 数据库由Paul Eggert进行编辑和维护 4 tz数据库按照自1970年至今的本地时间 将世界划分为不同区域 本图是根据2012c版的数据库 对南极洲之外区域的划分 1 它的显著特色是由上面提到的Paul Eggert设计的一套通用时区命名规则 例如 America New York 和 Europe Paris 5 数据库试图记录自1970年 Unix元年 以来时区和城市的变化 6 并且还包含一些时间的转换 例如夏令时和闰秒 7 目录 1 历史 2 时区的定义 3 时区的命名 3 1 区域 3 2 地点 4 时区数据 4 1 Zone tab文件 5 1970年之前的数据 6 文件格式 7 维护 8 其他标准下的应用 9 软件系统中的应用 10 另见 11 参考文献 12 外部链接历史 编辑该项目可以追溯至1986年之前 8 项目的数据库和一些涉及到的源代码已经释放到公有领域 9 通常 数据库会每年更新若干次 并发布变更公告 10 时区的定义 编辑在时区信息数据库中 时区 被定义为自1970年当地时间统一的国家及地区 11 这种定义方法关注于一个具有相同时间的地理区域 它与其他对时区的定义方法不同的是 其他方法关注于不同时区与本初子午线之间的时差 因而数据库中定义的每个时区都会记录一系列对协调世界时的时差 同一时区内一般会包含标准时间和夏令时两种 时区的命名 编辑为了更容易地理解 每个时区按照 区域 位置 格式 得到一个独有的名称 例如 America New York 英文地名中的空格用下划线 代替 连词符 只在英文地名本身包含时使用 区域 编辑 区域 指的是大洲 大洋名称以及Etc 大陆和海洋名称中包括 非洲 美洲 亚洲 欧洲 大洋洲 南极洲 太平洋 大西洋 印度洋 北冰洋 Etc用作一些管理时区 具体而言例如 Etc UTC 意为协调世界时 Coordinated Universal Time 为了与POSIX标准统一 以 Etc GMT 标记的时区将保留时区符号 即在格林威治时间 GMT 以西的区域的时区符号为正 以东区域符号为负 地点 编辑 地点 指的是是在区域中的特定地点的名称 通常是城市或小岛屿的名称 由于政权更替以及边界的变动 国家名称不能稳定地描述一个区域 故不适合用来命名时区 相比之下 大城市的名称更加固定 然而 数据库的维护者们想为每一个国家代码添加至少一个时区 这样很多用户访问数据库的界面就能够得到优化 另外 管理者们 还想让时区的地点在地理上更加紧凑 在未来时区可能发生的变化中 不会将原有的时区分割为不同的时区 來源請求 通常会选择时区内一个人口多的城市作为该时区的名称 也有使用其他城市名称的情况 例如使用一些更加有名或不易引起歧义的城市作为名称 來源請求 如果一个城市名发生了变化 则会在未来的版本中生成该城市的别名 來源請求 这样无论通过哪个名称访问 结果都会指向数据库中同一条记录 有时候 地点 本身也是一个复合名称 例如 America Indiana Indianapolis 英语 America Indiana Indianapolis 时区 目前数据库中存在的三级时区名称包括 America Argentina America Kentucky America Indiana 和 America North Dakota 由于 地点 的命名会选取这个区域具有代表性的名称 因而不是每个城市都有一个以它命名的时区 例如没有 America Boston 这个时区 此外 数据库中不同位置尽管有不同的名称 它们也有可能目前拥有同一个时区 例如一些历史上曾经分处不同时区 America Detroit 和 America New York 和一些在不同国家的位置 Europe Prague 和 Europe Bratislava 时区数据 编辑对于那些有多个时间偏移 通常指的是标准情况和夏令时情况下两个变量 的时区 时区信息数据库会记录准确的偏移变换时刻 数据记录的格式也可以将转换过程中日期和时间的变化记录起来 Zone tab文件 编辑 zone tab 英语 zone tab 文件存在于互联网中 文件格式的相关说明可参考文件中的注释 如下所示 原文 This file contains a table with the following columns 1 ISO 3166 2 character country code See the file iso3166 tab 2 Latitude and longitude of the zone s principal location in ISO 6709 sign degrees minutes seconds format either DDMM DDDMM or DDMMSS DDDMMSS first latitude is north then longitude is east 3 Zone name used in value of TZ environment variable 4 Comments present if and only if the country has multiple rows Columns are separated by a single tab The table is sorted first by country then an order within the country that 1 makes some geographical sense and 2 puts the most populous zones first where that does not contradict 1 譯文文件中的表格包含以下幾列 ISO 3166 2個字符的國家 地區代碼 詳見文件 iso3166 tab 時區代表位置的經緯度 使用ISO 6709標準 符號 度 分 秒 格式表示 即 度度分分 度度度分分或 度度分分秒秒 度度度分分秒秒 前半部分為緯度 北半球為正數 後半部分為經度 東半球為正數 TZ環境變量中使用的時區名稱 註解 當且僅當該國家有多行記錄時存在 列之間以一個定位字元分隔 表格首先依據國家進行排序 對同一國家內部的不同記錄 以下列方式進行排序 1 按照地理位置進行排序 2 在不與 1 衝突的先前下 將人口最多的區域插入首位 1970年之前的数据 编辑1970年之前的数据由于城市区域的变化需要进行修正 没有必要对整个区域的时区信息进行修正 这是由于新划分的区域仅需要与1970年至今的时钟进行时差比较 例如 在1963年10月23日至1963年12月9日 巴西只有米纳斯吉拉斯 Minas Gerais 英语 Minas Gerais 圣埃斯皮里图州 Espirito Santo 英语 Espirito Santo 里约热内卢州 Rio de Janeiro 和圣保罗 Sao Paulo 英语 Sao Paulo 有夏令时 由于自1970年以来圣保罗整个区域内时钟相同 导致一个区域无法从America Sao Paulo 英语 America Sao Paulo 时区中划分出来 这是1970年之前的数据需要修正的原因之一 12 以柏林时间 Europe Berlin 英语 Europe Berlin 为准的德国标准时间 在1945年之后的英 美 苏三国共同占领区域则是一段时间并未按照柏林时间进行夏令时变换 來源請求 文件格式 编辑时区信息数据库 Tz database 以文本文件的形式发布 文件以可阅读的形式记录了的条目规则和时区过渡信息 为便于使用 这些文本文件被编译为与操作系统无关的二进制文件 每个时区对应一个文件 相关的代码包括 被称为zic Zone Information Compiler 时区信息编译器 以及用来读取其他文件 并将文件中的时区信息应用于应用程序接口 例如localtime 和mktime 维护 编辑时区信息相关的代码和数据库由一群志愿者维护 Arthur David Olson侧重于代码的编辑 Paul Eggert则侧重于数据库 计划变更的条目会被送到项目的邮件列表中 在Usenet的comp time tz讨论组中 项目源文件发布在FTP服务器elsie nci nih gov上 这些源文件被类似于Debian的软件发行商编译 打包后成为发行版本中的一部分 终端用户可以通过对发行版本的升级来更新数据库 当然这样更新会有一些滞后 或者直接从ftp elsie nci nih gov pub 永久失效連結 获得源代码 自己编译生成二进制文件 基于类似原则的一个未来维护计划 页面存档备份 存于互联网档案馆 已经由互联网号码分配局起草完成 其他标准下的应用 编辑通用當地數據儲存庫 13 使用UN LOCODE对区域进行判断 1 页面存档备份 存于互联网档案馆 这意味着字符将与国家对应 这是时区信息数据库想要避免的状况 软件系统中的应用 编辑时区信息数据库用来处理时区和进行时区转换 已经应用于很多的计算机系统中 包括 BSD衍生操作系统 包括FreeBSD NetBSD OpenBSD DragonFly BSD和Mac OS X GNU C 库以及使用它的系统 包括GNU 大多数的Linux发行版 BeOS Haiku Nexenta OS以及Cygwin System V Release 4衍生系统 例如Solaris和UnixWare AIX 6 1及更高版本 14 15 自AIX 5 2开始的较早版本 仅为支持MySQL 16 之类的第三方软件而加入时区信息 17 但其并未将时区信息应用到操作系统中 17 18 一些其他的Unix操作系统 包括Tru64和UNICOS mp 还有IRIX 维护而不发行 OpenVMS JAVA运行时环境 1 4 2002 以后的发行版 Perl的DateTime TimeZone 页面存档备份 存于互联网档案馆 以及DateTime LeapSecond 页面存档备份 存于互联网档案馆 组件 2003年起 PHP发行版 5 1 0 2005 及以后 Python组件pytz 页面存档备份 存于互联网档案馆 NET Framework的zoneinfo 页面存档备份 存于互联网档案馆 组件 Oracle 10g 2004 以后的发行版 19 PostgreSQL 8 0 2005 以后的版本 嵌入式软件 例如IP钟表中的固件 通用當地數據儲存庫和國際統一碼部件採納了Olson时区编号被采纳 例如 這裡 页面存档备份 存于互联网档案馆 是微软Windows操作系统中的时区ID与Olson标准名称的映射关系 另见 编辑时区 夏时制参考文献 编辑 Mueller Erik A map of the TZ timezones of the world updated 2012 10 08 archived 2012 08 01 cited 2011 06 16 Eggert Paul Olson Arthur David Sources for time zone and daylight saving time data 2007 11 29 2007 12 03 原始内容存档于2012 08 01 引文使用过时参数coauthors 帮助 Olson Arthur David Resolved timezone issue Other issues New ctime manual page tz 邮件列表 1986 12 16 缺少或 url 为空 帮助 Eggert Paul Re FW IANA time zone registration proposal tz 邮件列表 2005 01 原始内容存档于2011 09 27 Eggert Paul proposal for time zone names tz 邮件列表 1993 10 20 缺少或 url 为空 帮助 Olson Arthur David Re ist of issues tz 邮件列表 1987 03 18 缺少或 url 为空 帮助 Devine Bob leap seconds 0 60 is ok tz 邮件列表 1988 06 02 缺少或 url 为空 帮助 Olson Arthur David seismo elsie tz new versions of time zone stuff tz 邮件列表 1986 11 24 缺少或 url 为空 帮助 Eggert Paul questions and comments on http tycho usno navy mil tzones html tz 邮件列表 1995 11 11 缺少或 url 为空 帮助 zoneinfo tzcode and tzdata archives FTP 2007 10 30 Theory text file contained in the tzcode distribution Version tzcode2007h tar gz 2007 10 01 referenced Olson Arthur David RE little nuance in brazil 1963 tz 邮件列表 2010 01 06 2011 06 16 原始内容存档于2016 04 11 CLDR Unicode Common Locale Data Repository 2011 06 14 原始内容存档于2011 08 07 Olson time zone support and setup AIX 7 1 information IBM 2011 03 12 原始内容存档于2012 08 01 Managing the Time Zone Variable IBM 2007 02 02 2011 03 11 原始内容存档于2011 07 13 2007 daylight savings time changes for Unix Academic Computing and Communications Center University of Illinois at Chicago 2007 02 25 2008 03 18 原始内容存档于2012 08 01 17 0 17 1 AIX O S updated to support 2007 Daylight Saving Time change IBM 2007 10 18 2011 03 12 原始内容存档于2012 08 01 Wickremasinghe Christopher Introduction of daylight saving time in Western Australia 2006 AIX Wiki IBM 2009 03 30 2011 03 11 原始内容存档于2012 08 01 Oracle Database Globalization Support Guide 10g Release 1 10 1 Chapter 4 Section Choosing a Time Zone File Oracle Corporation June 2004 4 14 2007 10 30 Part No B10749 02 原始内容存档于2008 12 01 tz mailing list archives of these messages are available at lt ftp elsie nci nih gov pub tzarchive gz 永久失效連結 gt 外部链接 编辑ITU LEGAL TIME 2011 页面存档备份 存于互联网档案馆 The tz database home page 页面存档备份 存于互联网档案馆 The tz mailing list archive Current tz source and data raw files 永久失效連結 Current tz data files compiled to multiple formats 页面存档备份 存于互联网档案馆 Lists of tz zones by tz group 页面存档备份 存于互联网档案馆 The tz database converted to SQL format Olson Database converted to Windows Standard Format 页面存档备份 存于互联网档案馆 A literary appreciation of the Olson Zoneinfo tz database 页面存档备份 存于互联网档案馆 by Jon Udell 取自 https zh wikipedia org w index php title 时区信息数据库 amp oldid 76725868, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。