Wszystkie artykuły

Czas Unix: dlaczego komputery liczą czas od 1970 roku

Czas Unix (Unix timestamp) to liczba sekund, które upłynęły od 1 stycznia 1970 roku 00:00:00 UTC. Ta data nazywana jest „epoką Unix" i to od niej praktycznie każdy nowoczesny system operacyjny, baza danych i język programowania liczy czas.

Dlaczego akurat 1970 rok

Data nie została wybrana ze względu na jakieś szczególne wydarzenie, lecz z czystej praktyczności: twórcy Uniksa w Bell Labs na początku lat 70. po prostu wzięli aktualny wtedy rok jako wygodny, okrągły punkt odniesienia. Nie ma za tą datą żadnego głębszego sensu.

Dlaczego ten format dominuje w projektach outsourcingowych

W polskim sektorze IT, silnie zorientowanym na projekty outsourcingowe dla klientów z całego świata, backendy Java czy .NET często logują zdarzenia jako Unix timestamp właśnie dlatego, że ułatwia to porównywanie i sortowanie zdarzeń pochodzących z serwerów rozsianych po różnych strefach czasowych bez ręcznej konwersji.

Problem roku 2038

Wiele starszych systemów przechowuje czas Unix jako 32-bitową liczbę całkowitą ze znakiem, która może reprezentować wartości tylko do 19 stycznia 2038 roku. Po tej dacie taka liczba przekroczy zakres — to nie tylko problem teoretyczny, bo starsze sterowniki przemysłowe i urządzenia wbudowane potrafią działać dekadami bez aktualizacji oprogramowania.

Do czego to się przydaje

  • Konwertowanie znacznika czasu z logów lub odpowiedzi API na zrozumiałą datę i godzinę.
  • Obliczanie różnicy między dwoma momentami czasu bez ręcznych obliczeń kalendarzowych.
  • Diagnozowanie problemów związanych ze strefami czasowymi przy pracy ze znacznikami czasu.

Czas Unix a sekundy przestępne

Czas Unix zakłada, że każda doba trwa dokładnie 86400 sekund, ignorując sekundy przestępne, które są od czasu do czasu dodawane do UTC w celu skompensowania spowolnienia obrotu Ziemi. Oznacza to, że czas Unix technicznie nie jest dokładną reprezentacją UTC w momentach dodania sekundy przestępnej — większość systemów po prostu „rozciąga" lub powtarza jedną sekundę, aby uniknąć skoku w liczniku.

Wypróbuj narzędzie