Jak konwertować znaczniki czasu Unix
Znaczniki czasu Unix to sposób, w jaki komputery przechowują i wymieniają czas — pojedyncza liczba reprezentująca sekundy od 1 stycznia 1970. Spotykasz się z nimi w odpowiedziach API, rekordach baz danych, plikach logów i tokenach JWT. Gdy musisz wiedzieć, jakiej dacie odpowiada 1711824000, potrzebujesz konwertera.
Jak wygląda znacznik czasu Unix
| Znacznik czasu | Typ | Czytelna data |
|---|---|---|
| 0 | Sekundy | 1 stycznia 1970, 00:00:00 UTC |
| 1000000000 | Sekundy | 9 września 2001, 01:46:40 UTC |
| 1711824000 | Sekundy | 31 marca 2024, 00:00:00 UTC |
| 1711824000000 | Milisekundy | 31 marca 2024, 00:00:00 UTC |
Różnica między sekundami a milisekundami to trzy dodatkowe zera. Liczba 10-cyfrowa jest w sekundach; 13 cyfr — w milisekundach.
Jak konwertować znaczniki czasu
- Wprowadź znacznik czasu lub datę — wklej znacznik czasu Unix, aby przekonwertować go na czytelną datę, lub wprowadź datę, aby uzyskać znacznik czasu.
- Sprawdź format — konwerter automatycznie wykrywa sekundy lub milisekundy na podstawie długości liczby.
- Odczytaj wynik — zobacz datę w Twojej lokalnej strefie czasowej, w UTC i w formacie ISO 8601.
Gdzie spotykasz znaczniki czasu
- Odpowiedzi API — większość API REST zwraca daty jako znaczniki czasu Unix:
"created_at": 1711824000 - Tokeny JWT — deklaracje
iat(issued at) iexp(expiration) są znacznikami czasu Unix - Rekordy baz danych — wiele baz przechowuje znaczniki czasu jako liczby całkowite dla wydajnego sortowania i porównywania
- Pliki logów — logi serwerowe często prefiksują wpisy znacznikami czasu epoch
- Zadania cron — systemy planowania odwołują się do czasu w formacie Unix
Znaczniki czasu w kodzie
Szybka konwersja w częstych językach:
JavaScript: new Date(1711824000 * 1000) (JS używa milisekund)
Python: datetime.fromtimestamp(1711824000)
Aktualny czas: Date.now() (JS), time.time() (Python)
Wskazówki
- Mnóż przez 1000 dla JavaScript — obiekt
DateJS oczekuje milisekund, ale większość API zwraca sekundy. Zapomnienie pomnożenia to najczęstszy błąd timestampu. - Zawsze precyzuj UTC — podczas konwersji bądź jednoznaczny co do strefy czasowej. „31 marca o północy” to inny znacznik czasu w zależności od tego, czy chodzi o UTC, EST czy PST.
- Używaj ISO 8601 do wyświetlania — po przekonwertowaniu sformatuj daty w
2024-03-31T00:00:00Zdla jednoznacznej komunikacji między strefami czasowymi. - Dodaj konwerter do ulubionych — jeśli pracujesz z API lub bazami danych, będziesz konwertować wystarczająco często, aby chcieć narzędzia jednym kliknięciem.
Najczęściej zadawane pytania
Czym jest czas Unix epoch?
Czas Unix epoch (zwany również czasem POSIX lub znacznikiem czasu Unix) to liczba sekund, które upłynęły od 1 stycznia 1970 o 00:00:00 UTC. To standardowy sposób, w jaki komputery wewnętrznie reprezentują czas.
Jaka jest różnica między znacznikami czasu w sekundach a w milisekundach?
Znaczniki czasu Unix w sekundach mają 10 cyfr (np. 1711824000). Znaczniki czasu w milisekundach mają 13 cyfr (np. 1711824000000). JavaScript używa milisekund, większość API i baz używa sekund. Konwerter wykrywa automatycznie na podstawie długości.
Dlaczego mój przekonwertowany czas jest przesunięty o kilka godzin?
Znaczniki czasu są zawsze w UTC. Konwerter wyświetla zarówno UTC, jak i Twój czas lokalny. Jeśli wynik nie odpowiada Twoim oczekiwaniom, prawdopodobnie porównujesz wyjście UTC z czasem lokalnym lub odwrotnie.
Co dzieje się w 2038?
Systemy przechowujące znaczniki czasu Unix jako 32-bitowe liczby całkowite ze znakiem przepełnią się 19 stycznia 2038. Większość nowoczesnych systemów używa 64-bitowych liczb całkowitych, co rozszerza zakres daleko poza wszelkie praktyczne obawy.