Похоже, что разные операционные системы по-разному работают в летнее время. Мне очень нравится подход Cisco IOS, который очень прост и позволяет изменить дату и время начала и окончания летнего времени. Например:
clock summer-time EDT recurring 2 Sun Mar 2:00 1 Sun Nov 2:00 60
.. устанавливает часы на 60 минут вперед в воскресенье второй недели марта в 2:00 и переводит часы на 60 минут назад в первое воскресенье ноября в 2:00. Как Linux обрабатывает DST? Я знаю, что есть tzdata
пакет, который содержит файлы данных часового пояса, и эти файлы установлены в /usr/share/zoneinfo/
каталог. Как и какими утилитами используются эти файлы? Я вижу сдвиг от UTC (2) и названия часовых поясов (EET и EEST) в файле:
T60:~# strings /usr/share/zoneinfo/posix/Europe/Helsinki
TZif2
HMT
EEST
TZif2
EEST
EET-2EEST,M3.5.0/3,M10.5.0/4
T60:~#
Кроме того, M3
вероятно, третий месяц и M10
десятый месяц? Кроме того, где-то также должно быть указано смещение. Например, в IOS можно настроить так, чтобы при наступлении летнего времени часы переключались, например, на 90 или 120 минут вместо 60.