Jak oszukać system by dokonał zmiany czasu z zimowego na letni dla danej strefy czasowej w innym dniu niż to się normalnie dzieje?
Jak oszukać system by dokonał zmiany czasu z zimowego na letni dla danej strefy czasowej w innym dniu niż to się normalnie dzieje?
Ciekawe pytanie i trudne.
Od razu nasuwa się pytanie - ale po co i czy po prostu nie lepiej przestawić czas albo udać inną strefę czasową w ogóle, a nie przesunięcie, albo przejść na rtc. czy coś w tym stylu.
Mam klienta, który jest w Chile, a tam rząd postanowił że nie będzie przechodził z czasu zimowego na letni w czasie gdy wszyscy w danej strefie to robią, dlatego też moje pytanie.
Trochę poszukałem i znalazłem, że można ustawić jakąś przez siebie stworzoną strefę czasową np GMT-4, w definicji której nie będzie automatycznej zmiany czasu - więc ustawienie tego typu TZ wiązać się będzie z potrzebą ręcznej zmiany czasu w dniu gdy rząd tego zechce.
Jednak nie mam doświadczenia i nie za bardzo jeszcze wiem jak to zrobić.
Strefę możesz zmienić "globalnie" - jako plik/kopia pliku/link /etc/localtime, albo też lokalnie dla danego procesu w zmiennej TZ
Najprościej jakbyś znalazł strefę jaka Ci wystarczy. Jak się nie uda - pozostaje skompilowanie własnej(narzędziem zic) i podmiana w /etc/localtime :-)
A - możliwe że w Twojej dystrybucji są po prostu nieaktualne dane stref czasowych a zmiana nastąpiła niedawno. Wtedy wystarczy zaktualizować paczkę z tzdata. Możesz też zawsze pobrać najnowszą paczkę z ftp://ftp.iana.org/tz i sprawdzić czy tam interesująca Cię strefa nie została już poprawiona - i jeżeli tak to po prostu jej użyć.
Dane dla chile sprawdzisz tak:
zdump -v /usr/share/zoneinfo/Chile/Continental
tudzież /usr/share/zoneinfo/Chile/EasterIsland