W tym artykule
Czym jest znacznik czasu Unix?
Znacznik czasu Unix (zwany też czasem epoki) to liczba sekund, które upłynęły od 1 stycznia 1970 roku o godzinie 00:00:00 UTC. Jest to najpowszechniej stosowana metoda reprezentowania czasu w systemach komputerowych, ponieważ jest niezależna od strefy czasowej, przechowywana jako pojedyncza liczba całkowita i łatwa do obliczeń arytmetycznych.
Znaczniki czasu Unix są używane praktycznie w każdym języku programowania i bazie danych. JavaScript używa milisekund (podziel przez 1000, aby uzyskać sekundy), podczas gdy większość innych języków używa sekund. Problem roku 2038 dotyczy systemów 32-bitowych, które przepełnią się, gdy znacznik czasu przekroczy 2^31.
Jak działa konwersja znaczników czasu
Konwerter tłumaczy w obu kierunkach między znacznikami czasu Unix a datami czytelnymi dla człowieka.
- Epoka na datę — konwertuje znacznik czasu Unix na sformatowany ciąg daty i godziny
- Data na epokę — konwertuje ciąg daty/godziny na odpowiadający mu znacznik czasu Unix
- Obsługa stref czasowych — wyświetla skonwertowane czasy jednocześnie w UTC i lokalnej strefie czasowej
Wypróbuj za darmo — bez rejestracji
Konwertuj znacznik czasu →Kiedy stosować konwersję znaczników czasu
Konwersja znaczników czasu jest przydatna podczas pracy z datami przechowywanymi jako liczby w API, bazach danych lub logach.
- Debugowanie API — konwertuj znaczniki czasu Unix w odpowiedziach API na czytelne daty
- Analiza logów — interpretuj pola ze znacznikami czasu w plikach logów i rekordach baz danych
- Harmonogramowanie — weryfikuj, czy obliczenia dat w kodzie generują poprawne wartości znaczników czasu Unix
Najczęściej zadawane pytania
Jaka jest różnica między znacznikiem czasu Unix w sekundach a milisekundach?
Większość systemów Unix używa sekund. Date.now() w JavaScript zwraca milisekundy. Jeśli znacznik czasu wygląda na 1000 razy za duży (np. 1708600000000 zamiast 1708600000), jest w milisekundach. Zawsze sprawdzaj wielkość wartości i dziel przez 1000, jeśli pracujesz ze znacznikami czasu JavaScript w kontekście oczekującym sekund.
Czym jest problem roku 2038?
19 stycznia 2038 roku 32-bitowe liczby całkowite ze znakiem używane do przechowywania znaczników czasu Unix przepełnią się, zawijając do wartości ujemnej reprezentującej rok 1901. Systemy nadal używające 32-bitowych znaczników czasu przestaną działać. Nowoczesne systemy używają 64-bitowych liczb całkowitych, które nie przepełnią się przez miliardy lat.
Czy znaczniki czasu Unix są zależne od czasu letniego?
Nie. Znaczniki czasu Unix zawsze reprezentują sekundy od epoki w UTC, niezależnie od czasu letniego. Korekta czasu letniego ma zastosowanie dopiero podczas konwersji na wyświetlanie czasu lokalnego. To jedna z kluczowych zalet przechowywania czasów jako znaczników czasu Unix.