Konwerter znaczników czasu Unix
Konwertuj znaczniki czasu epoki na czytelne daty — lub dowolną datę na znacznik czasu Unix. Zegar na żywo, fragmenty kodu w 8 językach, konwerter wsadowy.
Konwerter wsadowy
Wklej wiele znaczników czasu (jeden w wierszu). Obsługuje mieszane sekundy i milisekundy.
Czym jest znacznik czasu Unix?
Znacznik czasu Unix — zwany też czasem epoki, czasem POSIX lub czasem Unix — to liczba sekund, które upłynęły od epoki Unix: 1 stycznia 1970 roku o godzinie 00:00:00 czasu koordynowanego (UTC). Jest to podstawowe pojęcie w informatyce, używane do reprezentowania momentów w czasie w formacie niezależnym od strefy czasowej, języka programowania i doskonale nadającym się do operacji arytmetycznych.
Dlaczego sekundy od 1970 roku?
Epoka Unix została wybrana przez wczesnych twórców Uniksa na początku lat 70. jako punkt odniesienia. Choć wybór był nieco arbitralny, rok 1970 był bliski okresu tworzenia Uniksa i dawał okrągłe liczby dla ówczesnych znaczników czasu. Format stał się globalnym standardem dzięki wpływowi Uniksa na wszystkie późniejsze systemy operacyjne.
Sekundy a milisekundy
Oryginalna specyfikacja znacznika czasu Unix używa sekund, ale nowoczesne języki programowania i API często używają milisekund dla większej precyzji. Prosty sposób na odróżnienie: liczba 10-cyfrowa to sekundy (np. 1718000000); liczba 13-cyfrowa to milisekundy (np. 1718000000000). Ten konwerter wykrywa format automatycznie.
Problem roku 2038
32-bitowe liczby całkowite ze znakiem mogą przechowywać maksymalną wartość 2 147 483 647, co odpowiada 19 stycznia 2038 roku, godzinie 03:14:07 UTC. Systemy przechowujące znaczniki czasu Unix jako 32-bitowe liczby całkowite przepełnią się w tej dacie, zawijając do dużej liczby ujemnej. Nowoczesne systemy 64-bitowe mogą reprezentować znaczniki czasu do około roku 292 277 026 596 n.e., więc jest to problem wyłącznie dla starszych systemów wbudowanych i przestarzałego oprogramowania.
Najczęściej zadawane pytania
-
Znacznik czasu Unix (zwany też czasem epoki) to liczba sekund, które upłynęły od 1 stycznia 1970 roku, godziny 00:00:00 UTC. Jest to uniwersalny, niezależny od strefy czasowej sposób reprezentowania momentu w czasie, używany praktycznie we wszystkich językach programowania i systemach operacyjnych.
-
Znacznik 10-cyfrowy jest w sekundach (np. 1718000000 = czerwiec 2024). Znacznik 13-cyfrowy jest w milisekundach (np. 1718000000000). Ten konwerter wykrywa to automatycznie na podstawie liczby cyfr i wartości.
-
Znacznik czasu Unix dla 1 stycznia 2000 roku, godziny 00:00:00 UTC to 946684800.
-
19 stycznia 2038 roku o godzinie 03:14:07 UTC 32-bitowe znaczniki czasu Unix przepełnią się z wartości maksymalnej (2 147 483 647) do liczby ujemnej. Nowoczesne systemy 64-bitowe nie są dotknięte tym problemem, ale systemy wbudowane i starsze oprogramowanie mogą wymagać aktualizacji.
-
ISO 8601 to międzynarodowy standard reprezentacji daty i czasu. Typowy znacznik wygląda tak: 2024-06-10T14:30:00Z (Z oznacza UTC) lub 2024-06-10T14:30:00+05:30 (z przesunięciem UTC). Zalecany do API i wymiany danych.
-
Użyj Math.floor(Date.now() / 1000) dla sekund lub Date.now() dla milisekund. Możesz też użyć new Date().getTime(), które zwraca milisekundy.