Карта усіх часових зон, крім Антарктики, на базі tz database версії 2009 [1]

tz databaseангл. timezone database - База даних часових поясів) або zoneinfo database (база даних інформації про зони) - спільно зібрана інформація про світові часових зонах, призначена для використання в першу чергу операційними системами і комп'ютерними програмами [2]. Іноді вона згадується як "база даних Олсона" (Olson database), так як була заснована Артуром Девідом Олсон (Arthur David Olson) [3]. Редактором і зберігачем бази є Пол Еггерт (Paul Eggert) [4].

Її найвідоміша можливість - уніфіковане іменування часових поясів, розроблене Полом Еггерт, таке, як "Америка / Нью-Йорк" і "Європа / Париж" [5]. У базі даних намагаються зібрати інформацію про всі історичних часових поясах і всіх їхніх громадянських змінах починаючи з 1970 року, епохи юнікс [6]. Вона також включає в себе інформацію про перехід на літній час, і навіть запис високосних секунд [7].

Витоки проекту сходять принаймні до 1986 року [8]. База даних проекту, а також деякі вихідні файли, знаходяться в суспільному надбанні [9]. Нові версії бази даних публікуються, як правило, кілька разів на рік [10].

Восени 2011 року компанія Astrolabe подала до суду позов за звинуваченням Олсона і Еггерт в порушенні авторських прав. У зв'язку з цим 6 жовтня Олсон припинив доступ до ftp-серверу бази даних та публікацію списку розсилки [11]. Організація ICANN прийняла рішення розмістити на своїх серверах базу знань про часові пояси. Тепер tzdata знаходиться на серверах Адміністрації адресного простору Інтернет (IANA, підрозділ ICANN) за адресою http://www.iana.org/time-zones. У лютому 2012 року Astrolabe відкликала свій позов, принісши вибачення громадськості - "Наш судовий позов проти містера Олсона і містера Еггерт був заснований на перекрученому розумінні закону. Тепер ми розуміємо, що історичні факти не є нічиєю власністю і, відповідно, відкликаємо свою претензію. Ми глибоко жалкуємо про проблеми, які з'явилися через нашого позову у мейнтейнеров бази даних TZ і у користувачів інтернету " [12].


1. Функціонал

У базі tzdata міститься детальна інформація про всі часових поясах у всіх регіонах світу:

  • координатна прив'язка основних населених пунктів, що характеризують часовий пояс;
  • зсув локального часу в різних регіонах щодо універсального часу UTC;
  • вказано, в яких регіонах застосовується літній час, наскільки воно зміщується відносно стандартного, вказані точні дати і час перемикання на літній час і назад в різних регіонах в різні періоди;
  • інформація про високосних секундах.

Важливою особливістю бази tzdata є те, що вона зберігає не тільки поточний стан всіх світових часових поясів (тобто поточні правила розрахунку локального часу відносно UTC в кожному регіоні світу), але всі зміни цих правил розрахунку локального часу для всіх регіонів за весь час з початку UNIX-епохи ( 1 січня 1970). Наприклад, якщо якась країна з певного моменту починає використовувати інший часовий пояс, змінює дату переходу на літній час або скасовує перехід, то ця інформація зберігається в tzdata з точністю до секунди, коли це сталося.

Завдяки цій особливості, можна вести точні розрахунки часу для різних країн за різні проміжки часу. Наприклад, локальний час:

  • 2010-12-01 14:00 ( MSK) - відповідає 2010-12-01 11:00 ( UTC)
  • 2011-12-01 14:00 (MSK) - відповідає 2011-12-01 10:00 (UTC)

Оскільки в 2011 році в Росії був скасований перехід на літній час [13], то в один історичний період годинна зона Москви відповідала UTC +03:00, а в інший історичний період та ж сама годинна зона відповідала вже UTC +04:00. База tzdata допомагає вирішити подібні неоднозначності, так як там зберігається докладна інформація про те, коли і як розраховувалося час в кожному з часових поясів в кожен з тимчасових періодів з 1970 року. [14]


2. Іменування

Тимчасові зони мають унікальні імена у формі "Район / Розташування" (Area / Location), наприклад "Америка / Нью-Йорк", щоб їх було легше сприймати людям. Обрані англомовні назви або їх еквіваленти, опускається пунктуація і загальні суфікси, пробіл замінюється на підкреслення, використовуються дефіси.

Район включає імена континентів, океанів і "інше" (Etc). У набір континентів і океанів входять: Африка, Америка, Антарктика, Північний Льодовитий океан, Азія, Атлантичний океан, Австралія, Європа, Індійський океан і Тихий океан.


3. Формати файлів

Тимчасові зони Росії в tz database на 2009 рік

tz database публікується як набір текстових файлів зі списком правил і зон переходів в человекочітаемом форматі. Для використання ці текстові файли компілюються в набір незалежних від платформи бінарних файлів для кожної тимчасової зони. Код включає в себе компілятор під назвою zic (zone information compiler), а також код для читання цих файлів і використання їх в стандартних API як localtime() і mktime().

У більшості UNIX -подібних ОС скомпільовані файли з описом часових зон з пакету tzdata можна знайти тут: / usr / share / zoneinfo / [14].

Версії tzdata нумеруються так: спочатку чотиризначне число, що означає рік виходу цієї версії, потім одна буква латинського алфавіту по порядку: a, b, c, d і т. д. в міру виходу нових версій tzdata протягом одного року. Наприклад, у 2010 році виходили версії tzdata: 2010a, 2010b, 2010c і далі до версії 2010o. У 2011 році виходили версії tzdata: 2011a, 2011b, 2011c ... і далі до 2011n [15].


4. Управління

Код та база даних управляються групою добровольців. Артур Девід Олсон вносить основні зміни в код, а Пол Еггерт - в базу даних. Запропоновані зміни висилаються в список розсилки, що передає повідомлення в групу Usenet comp.time.tz. Вихідні файли розповсюджуються через FTP-сервер elsie.nci.nih.gov. Зазвичай ці файли приймаються від дистриб'юторів програмного забезпечення, таких як Debian, компілюються, а потім исходники і бінарні файли упаковуються як частина роздачі. Кінцеві користувачі можуть або покладатися на процес оновлення свого програмного забезпечення, або отримати код безпосередньо з джерела на ftp://elsie.nci.nih.gov/pub/.


5. Використання в інших стандартах

CLDR використовує UN / LOCODE для визначення регіонів [16]. Це означає, що ідентифікатори посилаються на країни, чого творці tz database хотіли уникнути.

6. Використання в програмному забезпеченні

База даних використовується для обробки тимчасової зони і перетворень у багатьох програмних комплексах, включаючи:

ID бази Олсона також використовуються в Unicode Common Locale Data Repository (CLDR) і International Components for Unicode (ICU). Наприклад, CLDR Windows → Tzid table maps Microsoft Windows [23].


Примітки

  1. Mueller, Erik A Map Of The TZ timezones Of The World - efele.net / maps / tz / world /. Читальний - www.webcitation.org/69bLNr2vA з першоджерела 2 серпня 2012.
  2. Eggert, Paul; Olson, Arthur David Sources For Time Zone AND Daylight Saving Time Data - cs.ucla.edu / ~ eggert / tz / tz-link.htm (29 листопада 2007). Читальний - www.webcitation.org/69bLOMg0k з першоджерела 2 серпня 2012.
  3. Olson, Arthur David Resolved TimeZone Issue? Other issues. New ctime manual page. Список розсилки tz (16 грудня 1986).
  4. Eggert, Paul Re: FW: IANA time zone registration - proposal - osdir.com/ml/time.tz/2005-01/msg00027.html. Список розсилки tz (січень 2005).
  5. Eggert, Paul Proposal For Time Zone Names. Список розсилки tz (20 жовтня 1993).
  6. Olson, Arthur David Re: ist of issues. Список розсилки tz (18 березня 1987).
  7. Devine, Bob Leap Seconds; [0-60] is ok. Список розсилки tz (2 червня 1988).
  8. Olson, Arthur David seismo! elsie! tz; new versions of time zone stuff. Список розсилки tz (24 листопада 1986).
  9. Eggert, Paul Questions AND Comments On http://tycho.usno.navy.mil/tzones.html. Список розсилки tz (11 листопада 1995).
  10. zoneinfo tzcode and tzdata archives (FTP).
  11. Olson, Arthur David Civil Suit; ftp shutdown; mailing list shutdown - article.gmane.org/gmane.comp.time.tz/4133 (Англ.) (6 October 2011). Читальний - www.webcitation.org/69bLOop3G з першоджерела 2 серпня 2012.
  12. EFF Wins Protection for Time Zone Database (Англ.) . Electronic Frontier Foundation (22.02.2012). .
  13. Законопроект № 509727-5 Про обчислення часу - asozd2.duma.gov.ru/main.nsf / (SpravkaNew)? OpenAgent & RN = 509727-5 & 02
  14. 1 2 roman_tik: Tzdata - глобальна база знань про часові пояси - habrahabr.ru/blogs/sysadm/130401 /
  15. IANA - Time Zone Database - www.iana.org / time-zones
  16. Unicode Locale Extension ('u') for BCP 47 - CLDR - Unicode Common Locale Data Repository - cldr.unicode.org/index/bcp47-extension
  17. Olson time zone support and setup - 7.1 information. IBM. Читальний - www.webcitation.org/69bLPYIMh з першоджерела 2 серпня 2012.
  18. Managing the Time Zone Variable. IBM (2 лютого 2007).
  19. 1 2 AIX O / S updated to support 2007 Daylight Saving Time change - www14.software.ibm.com/webapp/set2/sas/f/enews/2006/10/DSTupdate.html. IBM (18 жовтня 2007). Читальний - www.webcitation.org/69bLQCWws з першоджерела 2 серпня 2012.
  20. 2007 daylight savings time changes for Unix - www.uic.edu / depts / accc / systems / daylight / unix.html. Academic Computing and Communications Center, University of Illinois at Chicago (25 лютого 2007). Читальний - www.webcitation.org/69bLQic74 з першоджерела 2 серпня 2012. )
  21. Wickremasinghe, Christopher Introduction Of Daylight Saving Time In Western Australia 2006 - www.ibm.com / developerworks / wikis / display / usergroups / Introduction of Daylight Saving Time in Western Australia 2006. AIX Wiki. IBM (30 березня 2009). Читальний - www.webcitation.org/69bLRHbSi з першоджерела 2 серпня 2012.
  22. Oracle Database Globalization Support Guide 10g Release 1 (10.1): Chapter 4, Section "Choosing a Time Zone File" - download-uk.oracle.com/docs/cd/B14117_01/server.101/b10749/ch4datetime.htm # i1006667. - Oracle Corporation, 2004. - P. 4-14. - ISBN Part No. B10749-02
  23. Windows → Tzid - unicode.org / cldr / data / diff / supplemental / windows_tzid.html. Unicode Consortium (12 листопада 2007). Читальний - www.webcitation.org/69bLRvWHU з першоджерела 2 серпня 2012.
Часові пояси по зміщенню від всесвітнього координованого часу (UTC)

-12 | -11 | -10 | -9:30 | -9 | -8:30 | -8 | -7 | -6 | -5 | -4:30 | -4 | -3:30 | -3 | -2:30 | -2 | -1 | -0:44 | -0:25 | UTC (0) | +0:20 | +0:30 | +1 | +2 | +3 | +3:30 | +4 | +4:30 | +4:51 | +5 | +5:30 | +5:40 | +5:45 | +6 | +6:30 | +7 | +7:20 | +7:30 | +8 | +8:30 | +8:45 | +9 | +9:30 | +10 | +10:30 | +11 | +11:30 | +12 | +12:45 | +13 | +13:45 | +14

У деяких країнах північного і південного півкуль використовується літній час (DST). Курсивом виділені часові пояси, які не використовуються в даний час.