tz database
Tz database (з англ. timezone database — База даних часових поясів) або IANA Time Zone 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].
Іменування
Часові зони мають унікальні імена у формі «Район/Розташування» (Area/Location), наприклад «Америка/Нью-Йорк», щоб їх було легше сприймати людям. Обрано англомовні назви або їх еквіваленти, опускається пунктуація і загальні суфікси, пробіл замінюється на підкреслення, використовуються дефіси.
Район включає імена континентів, океанів і «інше» (Etc). У набір континентів і океанів входять: Африка, Америка, Антарктика, Північний Льодовитий океан, Азія, Атлантичний океан, Австралія, Європа, Індійський океан та Тихий океан.
Формати файлів
tz database публікується як набір текстових файлів зі списком правил і зон переходів в людиночитаємому форматі. Для використання ці текстові файли компілюються в набір незалежних від платформи бінарних файлів для кожної часової зони. Код містить компілятор під назвою zic (zone information compiler), а також код для читання цих файлів і використання їх у стандартних API як localtime()
і mktime()
.
Управління
Код і база даних управляються групою добровольців. Артур Девід Олсон вносить основні зміни в код, а Пол Еггерт — в базу даних. Запропоновані зміни висилаються в список розсилки, що передає повідомлення в групу Usenet comp.time.tz. Вихідні файли розповсюджуються через FTP-сервер elsie.nci.nih.gov. Зазвичай ці файли приймаються від дистриб'юторів програмного забезпечення, таких як Debian, компілюються, а потім вихідні коди і бінарні файли упаковуються як частина роздачі. Кінцеві користувачі можуть або покладатися на процес оновлення свого програмного забезпечення, або отримати код безпосередньо з джерела на ftp://elsie.nci.nih.gov/pub/%5Bнедоступне+посилання+з+лютого+2019%5D.
Використання в інших стандартах
Common Locale Data Repository використовує UN / LOCODE для визначення регіонів[12] . Це означає, що ідентифікатори посилаються на країни, чого творці tz database хотіли уникнути.
Використання в програмному забезпеченні
База даних використовується для обробки часової зони і перетворень в багатьох програмних комплексах, включаючи:
- BSD-подібні системи, включаючи FreeBSD, NetBSD, OpenBSD, DragonFly BSD та Mac OS X;
- GNU C Library і використовують її системи, включаючи GNU, більшість Linux, BeOS, Haiku, Nexenta OS та Cygwin;
- System V Release 4-похідні системи, такі, як Solaris та UnixWare;
- AIX 6.1 і пізніші версії[13][14] (Ранні версії AIX, починаючи з AIX 5.2, включали інформацію про часові зони[15] для підтримки сторонніх додатків на зразок MySQL[16] , Але не використовували її самі[15][17]);
- Деякі інші Unix-системи, включаючи Tru64 та UNICOS / mp (а також IRIX, досі підтримуваний, але не поставляється);
- OpenVMS;
- Java Runtime Environment починаючи з версії 1.4 (2002 рік);
- Модулі Perl DateTime:: TimeZone і DateTime:: LeapSecond, починаючи з 2003 року;
- PHP-релізи починаючи з 5.1.0 (2005 рік);
- Модуль Python pytz;
- Модуль . NET Framework zoneinfo;
- Випуски Oracle починаючи з 10g (2004 рік);[18]
- PostgreSQL починаючи з версії 8.0 (2005 рік);
- Вбудоване програмне забезпечення, на кшталт прошивок, що використовуються в IP-годинниках.
ID бази Олсона також використовуються в Unicode Common Locale Data Repository (CLDR) і International Components for Unicode (ICU). Наприклад, CLDR Windows Tzid table maps Microsoft Windows[19].
Примітки
- Mueller, Erik (23 листопада 2009). A map of the TZ timezones of the world. Архів оригіналу за 1 серпня 2012. Процитовано 9 жовтня 2011.
- Eggert, Paul; Olson, Arthur David (29 листопада 2007). link.htm Sources for time zone and daylight saving time data. Процитовано 3 грудня 2007.[недоступне посилання з червня 2019]
- Olson, Arthur David (16 грудня 1986). Resolved timezone issue? Other issues. New ctime manual page. tz mailing list.[недоступне посилання з лютого 2019]
- Eggert, Paul (2005-01). com/ml/time.tz/2005-01/msg00027.html Re: FW: IANA time zone registration - proposal. tz mailing list.[недоступне посилання з червня 2019]
- Eggert, Paul (20 жовтня 1993). proposal for time zone names. tz mailing list.[недоступне посилання з лютого 2019]
- Olson, Arthur David (18 березня 1987). gov / pub / tzarchive.gz Re: ist of issues. tz mailing list.[недоступне посилання з червня 2019]
- Devine, Bob (2 червня 1988). leap seconds; [0-60] is ok . tz mailing list.[недоступне посилання з лютого 2019]
- Olson, Arthur David (24 листопада 1986). nih.gov / pub / tzarchive.gz seismo! elsie! tz; new versions of time zone stuff. tz mailing list.[недоступне посилання з червня 2019]
- Eggert, Paul (11 листопада 1995). questions and comments on http://tycho.usno.navy.mil/tzones.html . tz mailing list.[недоступне посилання з лютого 2019]
- zoneinfo tzcode and tzdata archives (FTP). Процитовано 30 жовтня 2007.
- Olson, Arthur David (6 жовтня 2011). comp.time.tz/4133 Civil suit; ftp shutdown; mailing list shutdown (англійською). Процитовано 8 жовтня 2011.[недоступне посилання з червня 2019]
- Unicode Locale Extension ('u') for BCP 47 — CLDR — Unicode Common Locale Data Repository
- Olson time zone support and setup. AIX 7.1 information. IBM.
- Managing the Time Zone Variable. IBM. 2 лютого 2007.
- AIX O / S updated to support 2007 Daylight Saving Time change. IBM. 18 жовтня 2007. Архів оригіналу за 1 серпня 2012. Процитовано 12 березня 2011.
- 2007 daylight savings time changes for Unix. Academic Computing and Communications Center, University of Illinois at Chicago. 25 лютого 2007. Архів оригіналу за 15 липня 2013. Процитовано 2008-03 -18.)
- Wickremasinghe, Christopher (30 березня 2009). Introduction of daylight saving time in Western Australia 2006. AIX Wiki. IBM.
- Oracle Database Globalization Support Guide 10g Release 1 (10.1): Chapter 4, Section "Choosing a Time Zone File". Oracle Corporation. June 2004. с. 4–14. Part No. B10749-02. Архів # i1006667 оригіналу за 1 грудня 2008. Процитовано 30 жовтня 2007.
- Windows Tzid. Unicode Consortium. 12 листопада 2007. Архів оригіналу за 1 серпня 2012. Процитовано 17 лютого 2008.