Ви можете встановити часовий пояс для тривалості запиту, таким чином:
TZ=America/New_York date
Зауважте пробіл між TZ
налаштуваннями та date
командою. У rc
оболонці Борна та-подібній оболонці, яка встановлює TZ
змінну лише для командного рядка. В інших оболонках ( csh
, tcsh
, fish
), ви завжди можете використовувати env
команду замість:
env TZ=America/New_York date
тл; д-р
На системах Linux. часові пояси визначаються у файлах /usr/share/zoneinfo
каталогу. Ця структура часто називається "база даних Ольсона", щоб вшанувати свого засновника.
Правила для кожного часового поясу визначаються як рядки текстових файлів, які потім компілюються у двійковий файл. Рядки, складені так, визначають назву зони; діапазон даних та час, протягом яких застосовується зона; зміщення від UTC за стандартний час; і позначення для визначення того, як відбувається перехід на літній час і з нього, якщо це застосовно.
Наприклад, каталог "Америка" містить необхідну інформацію для Нью-Йорка у America/New_York
використаному вище файлі .
Будьте уважні, що специфікація неіснуючої зони (назва файлу) мовчки ігнорується і повідомляється час UTC. Наприклад, це повідомляє про неправильний час:
TZ="America/New York" date ### WRONG ###
Єдина специфікація UNIX, версія 3, відома як SUSv3 або POSIX-2001, зазначає, що для портативності символьна рядок, що ідентифікує опис часового поясу, повинна починатися з символу двокрапки. Таким чином, ми також можемо написати:
TZ=":America/New_York" date
TZ=":America/Los_Angeles" date
Як альтернативний метод специфікації часових поясів з використанням імені шляху до файлу опису, SUSv3 описує модель POSIX. У цьому форматі рядок визначається як:
std offset [dst[offset][,start-date[/time],end-date[/time]]]
де std
стандартна назва компонента і dst
є літній час. Кожне ім’я складається з трьох і більше символів. offset
Позитивно для часових поясів до захід від меридіана і негативне для тих до схід від меридіана. Зсув додається до місцевого часу, щоб отримати UTC (раніше відомий як GMT). start
І end
поля часу вказують , коли відбуваються стандарт / денного світла переходи.
Наприклад, у Східних Штатах стандартний час на 5 годин раніше, ніж UTC, і ми можемо вказати EST5EDT
замість цього America/New_York
. Ці альтернативи не завжди визнаються, особливо для зон поза межами США і їх найкраще уникати.
HP-UX (UNIX), сумісний з SUSv3, використовує текстові правила /usr/lib/tztab
та назви POSIX, такі як EST5EDT, CST6CDT, MST7MDT, PST8PDT. Цей файл містить усі історичні правила для кожного часового поясу, схожі на базу даних Олсона.
Примітка: Ви повинні бути в змозі знайти всі часові пояси, перевіривши наступний каталог: /usr/share/zoneinfo
.