Jak Konwertować Unix Timestamps na Czytelne Daty
Szybka odpowiedź
Unix timestamp = sekundy (lub milisekundy) od 1970-01-01 00:00:00 UTC. Konwertuj do daty z new Date(timestamp * 1000) w JavaScript (sekundy) lub new Date(timestamp) (milisekundy). Użyj naszego Timestamp Converter aby zrobić oba natychmiast.
Wstęp
Unix timestamp (nazywany też epoch time lub POSIX time) to liczba sekund od 1970-01-01 00:00:00 UTC (Unix epoch), wykluczając leap seconds. Jest lingua franca czasu w computing ponieważ to pojedynczy integer, który jest timezone-independent i trywialnie sortowalny. Większość systemów używa sekund; JavaScript i wiele baz danych używa milisekund.
Krok po kroku
-
Poznaj sekundy i milisekundy
Większość systemów backendowych i APIs używa sekund (10-cyfrowe znaczniki czasu do 2286). Data JavaScript i natychmiastowe użycie Java w milisekundach (13 cyfr). Zawsze sprawdzaj, jakiej jednostki oczekuje API — zmieszanie ich powoduje przesunięcie daty 1000 (przesunięcie o ~31 lat).
-
Konwertuj znacznik czasu na czytelną datę
Wklej znacznik czasu do konwertera znaczników czasu. Wykrywa sekundy i milisekundy na podstawie długości (10 zamiast 13 cyfr) i wyświetla datę w formacie UTC i lokalnej strefie czasowej. W kodzie: new Date(1700000000 * 1000).toISOString() zwraca '2023-11-14T22:13:20.000Z'.
-
Konwertuj datę na znacznik czasu
Wprowadź datę i godzinę do konwertera; zwraca znacznik czasu Uniksa. W kodzie: Math.floor(new Date('2026-08-28T12:00:00Z').getTime() / 1000) zwraca sekundy epoki. Zawsze określaj strefę czasową (Z lub przesunięcie), aby uniknąć niejednoznaczności czasu lokalnego.
-
Prawidłowo obsługuj strefy czasowe
Sygnatury czasowe systemu Unix są zawsze podawane w formacie UTC — nie mają strefy czasowej. Konwertuj na wyświetlacz lokalny tylko w warstwie prezentacji. Nigdy nie przechowuj czasu lokalnego jako znacznika czasu; przechowuj UTC i konwertuj na wyświetlaczu. Użyj nazw stref czasowych IANA (Ameryka/Nowy Jork) z Intl.DateTimeFormat, aby zapewnić poprawną obsługę czasu letniego.
-
Oblicz różnice pomiędzy datami
Odejmij dwa znaczniki czasu, aby uzyskać różnicę w sekundach (lub milisekundach). Podziel przez 60 dla minut, 3600 dla godzin, 86400 dla dni. Skorzystaj z naszego narzędzia Różnica dat, aby uzyskać zakresy przyjazne dla człowieka, lub Kalkulatora wieku, aby uzyskać wiek oparty na dacie urodzenia.
Przykłady
Epoka Uniksa
Wejście: 0 (seconds)
Wyjście: 1970-01-01 00:00:00 UTC
Miliard sekund po epoce
Wejście: 1000000000 (seconds)
Wyjście: 2001-09-09 01:46:40 UTC
Początek 2026 r. w czasie UTC
Wejście: 2026-01-01T00:00:00Z
Wyjście: 1767225600 (sekundy) / 1767225600000 (milisekundy)
Różnica między dwiema datami
Wejście: 1767225600 - 1700000000
Wyjście: 67225600 seconds = 778.08 days ≥2 years 31 days
Typowe problemy
- Zamieszanie w sekundach i milisekundach: 10-cyfrowy znacznik czasu odczytywany w milisekundach podaje datę 1970; 13-cyfrowy znacznik czasu odczytywany jako sekundy przekracza 32-bitowy int. Wykryj jednostkę według liczby cyfr lub udokumentuj ją wyraźnie w API.
- Zapisywanie czasu lokalnego jako znacznika czasu: znaczniki czasu to UTC. Jeśli obliczysz Date.now() w przeglądarce ustawionej na UTC-5 i potraktujesz wynik jako lokalny, przejścia na czas letni spowodują przesunięcie danych o godzinę dwa razy w roku.
- Przepełnienie 32-bitowe w dniu 2038-01-19 03:14:07 UTC (Y2038): systemy używające 32-bitowego znacznika czasu ze znakiem nie mogą przedstawiać dat po tym punkcie. W nowych systemach używaj 64-bitowych lub milisekundowych znaczników czasu.
- Sekundy przestępne są ignorowane: znaczniki czasu Uniksa pomijają sekundy przestępne, więc różnica między dwoma znacznikami czasu nie jest równa liczbie sekund SI, które upłynęły. Większość aplikacji może to zignorować; precyzyjna astronomia i finanse nie mogą tego zrobić.
Porady
- Zawsze przechowuj i przesyłaj znaczniki czasu w formacie UTC; konwertuj na czas lokalny tylko w warstwie wyświetlania przy użyciu Intl.DateTimeFormat ze strefą czasową IANA.
- Użyj ciągów ISO 8601 (np. 2026-08-28T12:00:00Z) dla czytelnego dla człowieka APIs i znaczników czasu do przechowywania — ciągi ISO wyraźnie niosą swoją strefę czasową i są jednoznaczne.
- Porównując znaczniki czasu, używaj tej samej jednostki (sekund lub milisekund) po obu stronach — niedopasowanie jednostek jest jednym z najczęstszych błędów w datach.
- Skorzystaj z naszego konwertera sygnatur czasowych, aby podczas debugowania sprawdzić poprawność odpowiedzi API — pokazuje zarówno czas UTC, jak i czas lokalny, dzięki czemu możesz natychmiast wykryć błędy strefy czasowej.