Конвертировать файл часового пояса Олсона в переменные среды TZ - PullRequest
1 голос
/ 01 сентября 2010

Мы используем соглашение "America / New_York" для пользователя, чтобы выбрать часовой пояс, но в нашей системе с ограниченными ресурсами мы должны вручную предоставить фактическую переменную TZ. Например, для Нью-Йорка у нас есть:

timezones["America/New_York"] = "EST5EDT,M3.2.0,M11.1.0";

Однако ресурс, который мы нашли для предоставления этих настроек среды, имел только подмножество всех регионов США, и я пытаюсь создать остальные. Например, мне нужно построить Америка / Кентукки / Луисвилл и Америка / Бойсе .

Есть ли ресурс с этим встроенным или существующим скриптом, который может преобразовывать соглашения Олсона в переменные среды TZ? Я некоторое время гуглил и ничего не могу найти (и сам нервничаю из-за реализации логики).

ТИА Mike

1 Ответ

0 голосов
/ 02 сентября 2010

Описания каждого часового пояса обычно хранятся в файлах под /usr/share/zoneinfo (например, /usr/share/zoneinfo/America/Kentucky/Louisville). Страница man tzfile (5) описывает структуру этих файлов.

Обратите внимание, что файлы содержат различные правила, которые будут использоваться в зависимости от даты, чтобы учесть прошлые и будущие политические изменения в правилах времени для каждого часового пояса (так что вы не можете просто сказать «дайте мне строку для * 1007»). * ", вы должны сказать" дайте мне строку для America/Kentucky/Louisville, действительную по состоянию на 2 сентября 2010 года ").

...