Pomoc techniczna
Unix Timestamp na datę: sekundy, milisekundy i UTC wyjaśnione
Zamień Unix timestamp na datę. Sekundy kontra milisekundy, UTC kontra czas lokalny, ISO 8601 i jak wrócić z daty do czasu epoch.
Unix timestamp przedstawia czas względem Unix epoch: 1970-01-01 00:00:00 UTC. Zwykle zapisuje się go jako sekundy od epoch albo jako milisekundy od epoch.
Żeby poprawnie przeliczyć, najpierw musisz znać jednostkę. 1720000000 sekund to 2024-07-03 09:46:40 UTC. 1720000000000 milisekund to ten sam moment.
Timestamp wskazuje chwilę. UTC, czas lokalny albo strefa IANA zmieniają tylko sposób wyświetlenia tej chwili.
To przewodnik po konwersji: timestamp na datę, data na timestamp, UTC kontra lokalny, oraz ISO 8601. Jeśli wartość nagle staje się datą z 1970, to zwykle rozjazd sekund i milisekund — zobacz Unix Timestamp w sekundach vs milisekundach: dlaczego data pokazuje 1970.
Czym jest Unix Timestamp?
Unix timestamp, Unix time i epoch time zwykle oznaczają czas, który upłynął od 1970-01-01 00:00:00 UTC. Liczba nie jest sformatowanym napisem daty z etykietą strefy. Ta sama chwila może pokazać inną godzinę w UTC, Nowym Jorku, Tokio albo Seulu. Unix timestamp nie zawsze jest w sekundach — w praktyce milisekundy są częste.
Czym jest Unix epoch?
Unix epoch to 1970-01-01 00:00:00 UTC. Timestamp 0 to ta chwila. Dodatni timestamp jest po epoch. Niektóre systemy dopuszczają ujemny timestamp na czas sprzed epoch, ale wsparcie języka i zakresu dat bywa różne.
Mój timestamp jest w sekundach czy w milisekundach?
1720000000 to sekundy; 1720000000000 to milisekundy; to ten sam moment. Praktyczna wskazówka: około 10 cyfr często oznacza sekundy, około 13 — milisekundy. Liczba cyfr to tylko heurystyka. Daty z przeszłości lub przyszłości, inne jednostki albo własny epoch mogą wyglądać inaczej. Konwerter daty i czasu przelicza sekundy, milisekundy albo auto (≤10 cyfr jako sekundy, ≥13 jako milisekundy) — wybierz jednostkę, gdy ją znasz.
Dlaczego zła jednostka daje złą datę?
JavaScript Date oczekuje milisekund. Podanie 1720000000 tak, jakby to były milisekundy, daje 1970-01-20 21:46:40 UTC. Traktowanie milisekund jako sekund, albo odwrotnie, ląduje na zupełnie innej dacie. Ścieżka diagnostyczna 1970: zobacz Unix Timestamp w sekundach vs milisekundach: dlaczego data pokazuje 1970.
new Date(1720000000);
// 1970-01-20T21:46:40.000Z
Jak przeliczyć Unix timestamp w sekundach
Pomnóż sekundy przez 1000, żeby dostać milisekundy. JavaScript Date jest oparty na milisekundach, więc użyj new Date(timestamp * 1000).
const timestamp = 1720000000;
const date = new Date(timestamp * 1000);
date.toISOString();
// 2024-07-03T09:46:40.000Z
Jak przeliczyć timestamp w milisekundach
Przekaż milisekundy do Date wprost. Nie mnoż ponownie przez 1000 timestampu, który już jest w milisekundach.
const timestamp = 1720000000000;
const date = new Date(timestamp);
date.toISOString();
// 2024-07-03T09:46:40.000Z
Dlaczego ten sam timestamp pokazuje inną godzinę?
Unix timestamp to jedna chwila. Pokazanie go w UTC, czasie lokalnym albo wybranej strefie IANA zmienia tarczę zegara. Dla 1720000000000 UTC to 2024-07-03 09:46:40. America/New_York tego dnia to 2024-07-03 05:46:40 (EDT). Asia/Seoul to 2024-07-03 18:46:40 (UTC+9). Te wartości Nowego Jorku i Seulu pochodzą z Intl, nie ze sloganu o stałym przesunięciu.
Czy Unix timestamp zawiera strefę czasową?
Nie. Nie zapisuje America/New_York ani Asia/Seoul. Timestamp wskazuje chwilę. Strefę stosuje się, gdy formatujesz tę chwilę jako czytelną datę i godzinę. Epoch jest zdefiniowany względem UTC; sama liczba nie jest „polem strefy UTC”.
Unix Timestamp a ISO 8601
1720000000 i 2024-07-03T09:46:40Z mogą oznaczać tę samą chwilę. Unix to liczbowa wartość upływu czasu. ISO 8601 to czytelny napis daty i godziny i może kończyć się na Z (UTC) albo przesunięciu liczbowym. Z znaczy UTC; czasem mówi się Zulu. To nie ten sam format.
Jak uzyskać bieżący Unix timestamp?
W JavaScript Date.now() to milisekundy. Math.floor(Date.now() / 1000) to sekundy. Nie wpisuj na sztywno „teraz” w artykule; to się przesuwa.
Date.now();
Math.floor(Date.now() / 1000);
Czy datę da się z powrotem zamienić na Unix timestamp?
Tak. Z jawnego napisu ISO UTC getTime() zwraca milisekundy; podziel przez 1000 i zaokrąglij w dół do sekund.
const date = new Date("2024-07-03T09:46:40Z");
date.getTime();
// 1720000000000
Math.floor(date.getTime() / 1000);
// 1720000000
Uważaj na niejednoznaczne formaty dat
03/07/2024 może oznaczać 7 marca albo 3 lipca, zależnie od regionu. Lepiej data i godzina w stylu ISO ze strefą albo przesunięciem. Konwerter daty i czasu odrzuca niejednoznaczne daty liczbowe takie jak 01/02/2026 i prosi o wybór daty albo wartość w stylu ISO.
A czas letni?
Unix timestamp nie zapisuje znacznika czasu letniego. Widok lokalny stosuje reguły strefy. America/New_York ma inne przesunięcia zimą i latem, więc „Nowy Jork to UTC-5” nie zawsze jest prawdą.
Czy Unix timestamp obejmuje sekundy przestępne?
Typowy czas POSIX/Unix nie liczy sekund przestępnych jako dodatkowych sekund SI na skali ciągłej. Platformy mogą się różnić. Przy codziennej konwersji ten szczegół możesz pominąć.
Częste błędy przy konwersji Unix timestamp
Te pomyłki dają złą datę albo zły zegar:
Sekundy potraktowane jako milisekundy
Współczesna wartość w sekundach ląduje wtedy koło 1970 w JavaScript Date.
Milisekundy potraktowane jako sekundy
Data skacze daleko w przyszłość.
Traktowanie 10 lub 13 cyfr jak prawa
Liczba cyfr to wskazówka, nie gwarancja.
Mylenie UTC z czasem lokalnym
Chwila jest ta sama; pokazany zegar może się różnić.
Założenie, że strefa siedzi w liczbie
Nazwy IANA stosuje się przy wyświetlaniu, nie zapisuje się ich w timestampie.
Niejednoznaczne daty, slogany o czasie letnim albo dodatkowe ×1000
Użyj wejścia w stylu ISO. Nie mnoż ponownie timestampu w milisekundach.
Sprawdzone przykłady UTC
Te godziny UTC policzono, nie odgadnięto:
| Wejście | Jednostka | UTC |
|---|---|---|
| 0 | sekundy | 1970-01-01 00:00:00 |
| 1720000000 | sekundy | 2024-07-03 09:46:40 |
| 1720000000000 | milisekundy | 2024-07-03 09:46:40 |
| 1720000000 | milisekundy | 1970-01-20 21:46:40 |
Prosty przewodnik decyzji przy konwersji
Jeśli źródło podaje jednostkę, użyj jej. Jeśli nie, liczba cyfr to wskazówka — potem sprawdź, czy data wygląda wiarygodnie. Przelicz sekundy na milisekundy, gdy API potrzebuje ms. Do wyświetlenia wybierz UTC, lokalny albo strefę IANA. ISO 8601 przydaje się do zapisu i wymiany.
- Masz Unix timestamp
- Jednostka podana? Użyj jej; inaczej sprawdź wielkość
- Sekundy? ×1000, jeśli API potrzebuje milisekund
- Milisekundy? Użyj wprost w API opartym na ms
- Pokaż jako UTC, lokalny albo strefę IANA
- Potrzebny napis? ISO 8601 może pasować
Timestamp wskazuje punkt w czasie. UTC, czas lokalny albo strefa decydują tylko, jak tę chwilę pokazać człowiekowi.
Przeliczaj Unix timestamp w przeglądarce
NEXNARA Konwerter daty i czasu przelicza sekundy i milisekundy Unix, pokazuje UTC, czas lokalny i ISO 8601 oraz zamienia między strefami IANA.
Tryb Unix obsługuje sekundy, milisekundy, jednostkę auto, bieżący czas i datę na timestamp. Tryb strefy szuka nazw IANA, używa strefy przeglądarki i stosuje przesunięcia Intl z czasem letnim. Tryb formatu ma czytelne wyjście regionalne, wyświetlanie 12/24 i ochronę przed niejednoznaczną datą. Różnica dat to osobny tryb.
Konwersja używa API Date i Intl przeglądarki. Wartości poza tym, co Date potrafi przedstawić, są odrzucane. Jednostka auto nie zgaduje wartości 11–12-cyfrowych; wybierz sekundy albo milisekundy.
Sama konwersja daty i timestampu dzieje się w przeglądarce. Dane nie są wysyłane na serwer NEXNARA w celu konwersji. Reklamy i inne funkcje witryny nadal korzystają z sieci.
Wklej timestamp w Konwerter daty i czasu i porównaj UTC, czas lokalny oraz ISO 8601, zanim wybierzesz jednostkę.
FAQ
Jak zamienić Unix timestamp na datę?
Poznaj jednostkę. W JavaScript dla sekund: new Date(n * 1000). Dla milisekund: new Date(n). Potem sformatuj jako UTC, lokalny albo strefę.
Unix timestamp jest w sekundach czy w milisekundach?
Bywa i tak, i tak. Około 10 cyfr często oznacza sekundy, a około 13 milisekundy, ale to heurystyka, nie reguła.
Dlaczego mój timestamp pokazuje 1970?
Zwykle wartość w sekundach odczytano jako milisekundy. Zobacz Unix Timestamp w sekundach vs milisekundach: dlaczego data pokazuje 1970.
Czy Unix timestamp zawsze jest UTC?
Epoch jest zdefiniowany względem UTC, a liczba wskazuje chwilę. Strefa wyświetlania jest osobna. To nie zapisane „pole strefy UTC”.
Czy Unix timestamp zawiera strefę czasową?
Nie. Nie niesie identyfikatora IANA. Strefę stosuje się przy formatowaniu chwili.
Jak zamienić datę na Unix timestamp?
Z napisu ISO UTC date.getTime() to milisekundy; Math.floor(date.getTime() / 1000) to sekundy.