Переход на летнее время в разных странах/часовых поясах (Подскажите как это реализовано в GNU/Linux)

Модератор: Модераторы разделов

Ответить
FlySnake
Сообщения: 992
ОС: openSUSE
Контактная информация:

Переход на летнее время в разных странах/часовых поясах

Сообщение FlySnake »

Хоть в России отменили перевод времени, но в мире - нет. Пишу софт для ARM Cortex-M3, в комплекте обрезаннаяоптимизированная libc, имеются функции для работы со временем в unix формате (gmtime, localtime, strftime...). Но проблема в том что тут нет поддержки ни часовых поясов ни перехода на летнее время. С часовыми поясами всё просто: делается выбор пояса и соответственно +/- к секундам в unix формате, а вот переход на летнее время в разных странах по-разному. Как эта фича реализована в "больших" операционных системах? Может есть что-то более умное чем тупо список стран или ручной ввод дат перевода?
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5289
ОС: Gentoo

Re: Переход на летнее время в разных странах/часовых поясах

Сообщение /dev/random »

FlySnake писал(а):
03.11.2011 21:59
Может есть что-то более умное чем тупо список стран

Именно "тупо список", правда, не стран, а имён часовых поясов с подробной информацией о переводах часов, "високосных" секундах и т.д., включая исторические данные. Хранящегося там описания пояса достаточно, чтобы перевести произвольное прошедшее epoch time в локальное время для пояса.

В GNU/Linux эти описания лежат в /usr/share/zoneinfo/. Формат файла - man tzfile.
Спасибо сказали:
Ответить