Jak dokładnie używana jest baza danych Tzdata?


10

Wydaje się, że różne systemy operacyjne inaczej radzą sobie z czasem letnim (DST). Bardzo podoba mi się podejście Cisco IOS, które jest bardzo proste i pozwala zmienić datę i godzinę rozpoczęcia i zakończenia DST. Na przykład:

clock summer-time EDT recurring 2 Sun Mar 2:00 1 Sun Nov 2:00 60

.. ustawia zegar o 60 minut do przodu w niedzielę drugiego tygodnia marca o 2:00 i przesuwa zegar o 60 minut do przodu w pierwszą niedzielę listopada o 2:00. Jak Linux obsługuje DST? Wiem, że istnieje tzdatapakiet zawierający pliki danych strefy czasowej, które są instalowane w /usr/share/zoneinfo/katalogu. Jak i za pomocą jakich narzędzi są używane te pliki? Widzę przesunięcie z UTC (2) i nazw stref czasowych (EET i EEST) w pliku:

T60:~# strings /usr/share/zoneinfo/posix/Europe/Helsinki
TZif2
    HMT
EEST
TZif2
EEST
EET-2EEST,M3.5.0/3,M10.5.0/4
T60:~# 

Ponadto M3jest prawdopodobnie trzeci miesiąc i M10dziesiąty miesiąc? Ponadto należy gdzieś określić przesunięcie. Na przykład w IOS można skonfigurować, że gdy nastąpi czas letni, zegar przesuwa się na przykład o 90 lub 120 minut zamiast 60.

Odpowiedzi:


4

Jeśli spojrzysz na stronę Wikipedii dotyczącą bazy danych TZ :

fragment

Formaty plików

Baza danych tz jest publikowana jako zestaw plików tekstowych, które zawierają listę reguł i przejść stref w czytelnym dla człowieka formacie. Do użytku te pliki tekstowe są kompilowane w zbiór niezależnych od platformy plików binarnych - po jednym na strefę czasową. Referencyjny kod źródłowy zawiera taki kompilator o nazwie zic (kompilator informacji o strefie), a także kod do odczytu tych plików i używania ich w standardowych interfejsach API, takich jak localtime () i mktime ().

Dodatkowe wyszukiwanie ujawniło to pytania i odpowiedzi dotyczące przepływu stosu, zatytułowane: Pytanie o format pliku bazy danych stref czasowych , które zawierało dodatkowe informacje na temat formatu pliku.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.