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