Anda dapat menetapkan zona waktu selama durasi kueri, dengan demikian:
TZ=America/New_York date
Perhatikan spasi putih antara TZ
pengaturan dan date
perintah. Dalam rc
shell Bourne-like dan -like, yang menetapkan TZ
variabel hanya untuk baris perintah. Dalam kerang lainnya ( csh
, tcsh
, fish
), Anda dapat selalu menggunakan env
perintah sebagai gantinya:
env TZ=America/New_York date
tl; dr
Di sistem Linux. zona waktu didefinisikan dalam file dalam /usr/share/zoneinfo
direktori. Struktur ini sering disebut sebagai "database Olson" untuk menghormati kontributor pendiri.
Aturan untuk setiap zona waktu didefinisikan sebagai baris file teks yang kemudian dikompilasi menjadi file biner. Garis yang dikompilasi, tentukan nama zona; rentang data dan waktu selama zona tersebut berlaku; offset dari UTC untuk waktu standar; dan notasi untuk menentukan bagaimana transisi ke-dan-dari waktu musim panas terjadi, jika berlaku.
Misalnya, direktori "Amerika" berisi informasi yang diperlukan untuk New York dalam file America/New_York
seperti yang digunakan, di atas.
Berhati-hatilah bahwa spesifikasi zona yang tidak ada (nama file) diabaikan secara diam-diam dan waktu UTC dilaporkan. Misalnya, ini melaporkan waktu yang salah:
TZ="America/New York" date ### WRONG ###
Spesifikasi UNIX Tunggal, versi-3, dikenal sebagai SUSv3 atau POSIX-2001, mencatat bahwa untuk portabilitas, string karakter yang mengidentifikasi deskripsi zona waktu harus dimulai dengan karakter titik dua. Jadi, kita juga bisa menulis:
TZ=":America/New_York" date
TZ=":America/Los_Angeles" date
Sebagai metode alternatif untuk spesifikasi zona waktu menggunakan pathname ke file deskripsi, SUSv3 menjelaskan model POSIX. Dalam format ini, string didefinisikan sebagai:
std offset [dst[offset][,start-date[/time],end-date[/time]]]
di mana std
adalah nama komponen standar dan dst
yang hemat di siang hari. Setiap nama terdiri dari tiga karakter atau lebih. Nilai offset
positif untuk zona waktu di barat meridian utama dan negatif untuk zona timur meridian. Offset ditambahkan ke waktu lokal untuk mendapatkan UTC (sebelumnya dikenal sebagai GMT). Kolom start
dan end
waktu menunjukkan kapan transisi standar / siang hari terjadi.
Misalnya, di Amerika Serikat bagian Timur, waktu standar adalah 5 jam lebih awal dari UTC, dan kami dapat menentukan EST5EDT
sebagai pengganti America/New_York
. Namun, alternatif ini tidak selalu diakui, terutama untuk zona di luar Amerika Serikat dan sebaiknya dihindari.
HP-UX (sebuah UNIX yang memenuhi SUSv3) menggunakan aturan tekstual /usr/lib/tztab
dan nama-nama POSIX seperti EST5EDT, CST6CDT, MST7MDT, PST8PDT. File tersebut mencakup semua aturan historis untuk setiap zona waktu, mirip dengan basis data Olson.
CATATAN: Anda harus dapat menemukan semua zona waktu dengan memeriksa direktori berikut: /usr/share/zoneinfo
.