Czym jest Unix timestamp i dlaczego oprogramowanie go używa?
Jeśli kiedykolwiek otworzyłeś plik logów, obejrzałeś odpowiedź API lub zajrzałeś do bazy danych i zobaczyłeś liczbę w rodzaju 1760356800 tam, gdzie spodziewałeś się daty, spotkałeś Unix timestamp. Wygląda tajemniczo, ale idea jest prosta, a jej zrozumienie ułatwia debugowanie wielu codziennych problemów.
Podstawowa idea
Unix timestamp to po prostu liczba sekund. Dokładnie: liczba sekund, które upłynęły od 1 stycznia 1970 roku, godz. 00:00:00 UTC, momentu, który programiści nazywają „epoką Uniksa”. Ta data nie jest wyjątkowa z żadnego głębokiego powodu; wybrano ją dziesięciolecia temu jako wygodny punkt zero przy tworzeniu Uniksa i utrzymała się jako niemal powszechny standard.
Gdy widzisz 1760356800, to skrót od „tyle sekund po północy 1 stycznia 1970”. Przelicz, a otrzymasz prawdziwą datę i godzinę.
Dlaczego nie zapisać po prostu „13 października 2026”?
Zapisanie daty tak, jak czytają ją ludzie, wydaje się naturalniejsze, więc dlaczego tyle systemów używa zwykłej liczby? Z kilku praktycznych powodów:
- Jest jednoznaczny. „10/13/2026” w USA to 13 października, a w innych miejscach może być czytane inaczej. Timestamp to po prostu liczba całkowita.
- Ignoruje strefy czasowe, dopóki nie są potrzebne. Liczba oznacza jeden dokładny moment na całej Ziemi. Dopiero przy wyświetlaniu przelicza się ją na lokalną strefę, co omija całą klasę błędów, gdy data przesuwa się o kilka godzin.
- Łatwo na niej liczyć. Chcesz wiedzieć, czy jedno zdarzenie było przed drugim lub ile sekund minęło? To zwykłe odejmowanie.
- Jest zwarty i szybki do przechowywania i porównywania w bazach danych.
Gdzie na niego trafisz
- Odpowiedzi API: wiele usług zwraca pola
created_atlubupdated_atjako surowe timestampy. - Logi serwerów i aplikacji: debugowanie awarii często oznacza zestawianie timestampów z kilku plików.
- Bazy danych: zapisywanie timestampu zamiast sformatowanego tekstu to standard.
- Metadane plików: niektóre systemy zapisują czas utworzenia lub modyfikacji w ten sposób.
Pułapka: sekundy a milisekundy
Niektóre systemy (zwłaszcza Date.now() w JavaScripcie) używają milisekund od epoki, więc ten sam moment może wyglądać jak 1760356800 w jednym narzędziu i 1760356800000 w innym. Jeśli timestamp wygląda na pochodzący z dalekiej przyszłości lub ma trzy dodatkowe zera, to prawdopodobnie milisekundy i trzeba podzielić przez 1000.
Przeliczanie samodzielnie
Nie musisz liczyć ręcznie. Jeśli trafisz na surowy timestamp w logu lub odpowiedzi API i chcesz wiedzieć, jaką datę i godzinę oznacza (albo odwrotnie), nasz konwerter Unix timestamp obsługuje oba kierunki od razu, w tym rozróżnienie sekund i milisekund, prosto w przeglądarce.