Basis Data Zona Waktu

Basis Data Zona Waktu, disebut juga tz database, tzdata, zoneinfo database, atau Basis Data Zona Waktu IANA, adalah kumpulan informasi zona waktu dunia yang bersifat kolaboratif dan cenderung ditujukan untuk program komputer dan sistem operasi. Basis data ini kadang disebut basis data Olson sesuai nama kontributor pendirinya, Arthur David Olson. Paul Eggert saat ini merupakan editor dan pengelola basis data ini.
Fiturnya yang paling mudah dikenali adalah konvensi penamaan yang seragam untuk zona waktu, misalnya America/New_York dan Europe/Paris (lihat Daftar zona waktu di Basis Data Zona Waktu). Konvensi tersebut dirancang oleh Paul Eggert. Basis data ini berusaha mencatat zona waktu historis dan semua perubahan sipil sejak 1970, kala waktu Unix. Basis Data Zona Waktu juga mencakup peralihan waktu seperti waktu musim panas dan bahkan mencatat detik kabisat.

Format berkas

Basis Data Zona Waktu diterbitkan sebagai susunan berkas teks yang berisi daftar peraturan dan peralihan zona dalam format yang dapat dibaca manusia. Untuk menggunakannya, berkas teks ini dikompilasi menjadi setumpuk berkas biner bebas platform—satu untuk setiap zona waktu. Kode sumber referensinya mengandung kompilator bernama zic (kompilator informasi zona), serta kode untuk membaca berkas-berkas tersebut dan menggunakannya dalam API seperti localtime() dan mktime().

Definisi zona waktu

Di basis data ini, sebuah zona waktu adalah wilayah nasional manapun yang jam lokalnya sudah disepakati bersama-sama sejak 1970. Definisi ini mempertimbangkan wilayah geografis yang jam lokalnya konsisten. Ini berbeda dengan definisi lain yang mempertimbangkan perbedaan waktu konsisten dari meridian utama. Maka dari itu, setiap zona waktu yang didefinisikan oleh Basis Data Zona Waktu bisa mengandung beberapa perbedaan waktu UTC, biasanya menyertakan waktu standar dan waktu musim panas.
Di berkas teks zona waktu, setiap zona waktu memiliki satu "garis zona" atau lebih di salah satu berkas teks zona waktunya. Garis zona pertama untuk suatu zona waktu berisi nama zona; garis zona selanjutnya di zona waktu tersebut mengosongkan namanya, sehingga zona ini tergolong dalam zona yang sama seperti garis sebelumnya. Untuk serangkaian tanggal dan waktu, masing-masing garis zona untuk suatu zona menerangkan perubahan waktu UTC untuk waktu standar, nama susunan peraturan yang mengatur waktu musim panas (atau tanda hubung jika waktu standar selalu diterapkan), format singkatan zona waktu, dan tanggal dan waktu tempat rangkaian tanggal dan waktu yang diatur oleh garis tersebut berakhir (berlaku untuk semua kecuali garis zona terakhir).

Nama zona waktu

Zona waktu memiliki nama unik dengan format "Wilayah/Lokasi", e.g. "America/New_York", agar bisa dipahami orang biasa. Disepakati pula penggunaan nama berbahasa Inggris atau transliterasi yang setara, serta penghapusan tanda baca dan akhiran kata. Karakter garis bawah dipakai untuk menggantikan spasi. Tanda hubung digunakan ketika namanya tampil di nama suatu lokasi.

Wilayah

Wilayah adalah nama benua, samudra, atau "Etc". Benua dan samudra tersebut saat ini mencakup: Afrika, Amerika, Antartika, Arktik, Asia, Atlantik, Australia, Eropa, Hindia, dan Pasifik.
Wilayah khusus "Etc" dipakai untuk beberapa zona administratif, terutama untuk "Etc/UTC" yang mewakili Coordinated Universal Time. Untuk menyesuaikan dengan gaya POSIX, zona-zona waktu yang berawalan "Etc/GMT" akan dibalikkan tandanya. Dengan gaya ini, zona di sebelah barat GMT diberi tanda positif dan zona di timur diberi tanda negatif di namanya (e.g "Etc/GMT-14" lebih cepat/timur 14 jam dari GMT.)

Lokasi

Lokasi adalah nama lokasi tertentu di dalam wilayah – biasanya kota atau pulau kecil.
Kadang-kadang, Lokasi itu sendiri dijadikan nama himpunan, misalnya zona waktu "America/Indiana/Indianapolis". Nama-nama yang bertingkat tiga saat ini adalah "America/Argentina/...", "America/Kentucky/...", "America/Indiana/...", and "America/North_Dakota/...".
Lokasi yang dipilih adalah perwakilan untuk seluruh wilayah.
Pada tanggal 1 Mei 2010, Arthur David Olson menetapkan batasan 14 karakter supaya bisa menghapus "de" di nama Bahia de Banderas dan mencantumkan "Bahia_Banderas" untuk nama pengenal America/Bahia Banderas.

Zone.tab

Berkas zone.tab berada di bawah domain umum dan berisi daftar zona. Penyortiran kolom dan baris dijelaskan di keterangan berkas seperti ini:
# 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).

Data sebelum 1970

Data sebelum 1970 dianggap cocok untuk kota yang mengidentifikasi suatu wilayah, tetapi tidak harus cocok untuk seluruh wilayah. Hal ini dikarenakan wilayah-wilayah baru dibuat hanya untuk membedakan jam sejak tahun 1970.
Misalnya, antara 1963-10-23 dan 1963-12-09 di Brasil, hanya negara bagian Minas Gerais, Espirito Santo, Rio de Janeiro, dan São Paulo yang menerapkan waktu musim panas. Akan tetapi, permintaan pemisahan dari America/Sao Paulo ditolak pada tahun 2010 dengan alasan bahwa sejak 1970 jam sudah diseragamkan untuk seluruh wilayah ini.
Waktu di Jerman, yang diwakili oleh Europe/Berlin, tidak cocok untuk tahun 1945 ketika Trizone menggunakan aturan waktu musim panas yang berbeda dengan Berlin.