Czym jest Konwerter Znacznika Czasu Unix?
Konwerter Znaczników Czasu Unix to niezbędne narzędzie programistyczne, które łączy czas epoki czytelny dla maszyn z datami czytelnymi dla ludzi. Czas Unix (zwany również czasem epoki) mierzy liczbę sekund, które upłynęły od 1 stycznia 1970 00:00:00 UTC — momentu, w którym system operacyjny Unix po raz pierwszy uruchomił się na komputerze PDP-11 w Bell Labs. Data ta jest znana jako Epoka Unix i służy jako uniwersalny punkt zerowy do pomiaru czasu w informatyce. Konwerter działa w dwóch kierunkach: wprowadź znacznik czasu Unix (zwykle 10-cyfrową liczbę dla sekund lub 13-cyfrową dla milisekund), aby zobaczyć odpowiadającą czytelną datę, lub wprowadź datę i czas, aby uzyskać odpowiadający mu znacznik czasu Unix. Wyświetlanie na żywo aktualnego znacznika czasu odświeża się co sekundę, abyś mógł uchwycić dokładny moment jednym kliknięciem. JavaScript Date.now() i większość nowoczesnych API zwraca znaczniki czasu w milisekundach (13 cyfr), podczas gdy bazy danych i systemy starsze często używają sekund (10 cyfr) — mylenie tych dwóch jest jednym z najczęstszych błędów w tworzeniu stron internetowych. Konwerter obsługuje również ujemne znaczniki czasu reprezentujące daty sprzed epoki (31 grudnia 1969 i wcześniejsze). Przełączaj między UTC a czasem lokalnym, aby weryfikować wartości wrażliwe na strefę czasową.
Kiedy używać tego kalkulatora
- Debugujesz API, które zwraca znaczniki czasu Unix i musisz je odczytać jako ludzkie daty
- Piszesz kod, który przechowuje lub porównuje daty i musisz konwertować między znacznikiem czasu a formatem daty
- Potrzebujesz aktualnego znacznika czasu Unix dla wpisu w logu, wywołania API lub rekordu bazy danych
- Analizujesz logi serwera, w których znaczniki czasu są w formacie epoch
- Chcesz zweryfikować, czy znacznik czasu w Twoim kodzie odpowiada właściwej dacie i godzinie
- Pracujesz z bazami danych lub systemami plików, które używają znaczników czasu Unix dla metadanych plików
Kroki:
- Wprowadź znacznik czasu Unix, aby przekonwertować go na czytelną datę.
- Lub wprowadź datę/czas, aby przekonwertować ją na znacznik czasu Unix.
- Kliknij przycisk aktualnego czasu, aby uzyskać bieżący znacznik czasu Unix.
- Skopiuj wyniki za pomocą przycisku kopiowania.
Wzór
Znacznik czasu → Data: new Date(timestamp × 1000)
Data → Znacznik czasu: Math.floor(date.getTime() / 1000)
Epoka Unix: 1 stycznia 1970 00:00:00 UTC
Maksymalny 32-bitowy znacznik czasu: 19 stycznia 2038 (03:14:07 UTC)
Przypadki użycia
- Debugowanie odpowiedzi API ze znacznikami czasu
- Konwertowanie wartości znaczników czasu bazy danych
- Ustawianie dat wygaśnięcia w kodzie
- Analiza logów i interpretacja danych szeregów czasowych
Kluczowe korzyści
- Natychmiastowa konwersja między znacznikami czasu Unix a czytelnymi datami w obu kierunkach
- Aktualny znacznik czasu Unix na żywo odświeżany co sekundę z przyciskiem kopiowania jednym kliknięciem
- Przełączanie między UTC a czasem lokalnym w celu weryfikacji wartości wrażliwych na strefę czasową
- Obsługuje zarówno format 10-cyfrowy (sekundy), jak i 13-cyfrowy (milisekundy)
- Przetwarza ujemne znaczniki czasu dla dat sprzed epoki Unix (przed 1970)
- Darmowy, natychmiastowy i działa w przeglądarce bez rejestracji ani zbierania danych
Wskazówki
- Zawsze przechowuj znaczniki czasu w UTC w bazach danych — konwertuj do czasu lokalnego tylko na warstwie wyświetlania.
- Pamiętaj, że JavaScript Date.now() zwraca milisekundy. Aby uzyskać sekundy: Math.floor(Date.now() / 1000).
- Używaj 64-bitowych liczb do przechowywania znaczników czasu w nowych systemach, aby uniknąć problemu przepełnienia w 2038.
- Podczas debugowania niespodziewanych dat najpierw sprawdź, czy znacznik czasu jest w sekundach czy milisekundach — różnica to czynnik 1000.
- Dla tokenów uwierzytelniania API lub podpisanych URL-i oblicz znacznik czasu wygaśnięcia po stronie serwera i porównaj z aktualnym czasem Unix, aby sprawdzić ważność.
Częste błędy
- Zapominanie, że JavaScript Date.now() zwraca milisekundy — zawsze dziel przez 1000 porównując ze znacznikami czasu opartymi na sekundach.
- Zakładanie, że wszystkie API używają tego samego formatu — niektóre zwracają sekundy, inne milisekundy. Zawsze sprawdzaj dokumentację API.
- Nieuwzględnianie różnic stref czasowych między miejscem wygenerowania znacznika czasu a miejscem jego wyświetlania, co powoduje, że daty wydają się różnić o kilka godzin.
- Używanie 32-bitowych liczb do przechowywania znaczników czasu w nowych systemach zamiast 64-bitowych, które przepełnią się w 2038 i zepsują aplikację.
Kluczowe pojęcia
- Znacznik czasu Unix: Liczba sekund, które upłynęły od 1 stycznia 1970 00:00:00 UTC (Epoka Unix)
- Epoka: Punkt odniesienia do pomiaru czasu w informatyce; dla Unix jest to 1 stycznia 1970 00:00:00 UTC
- UTC (Czas Uniwersalny Skoordynowany): Główny standard czasu używany na całym świecie, niezależny od jakiejkolwiek strefy czasowej
- Problem roku 2038: Data, w której 32-bitowe znaczniki czasu Unix przepełnią się, zmuszając systemy do przeskoczenia na wartości ujemne i wyświetlenia dat wokół 1901.
- Znacznik czasu w milisekundach: 13-cyfrowy znacznik czasu Unix, w którym czas jest mierzony w milisekundach zamiast sekund, używany przez JavaScript Date.now() i większość nowoczesnych API.
Powiązane pojęcia
- Epoka Unix: 1 stycznia 1970 00:00:00 UTC, punkt odniesienia, od którego mierzone są wszystkie znaczniki czasu Unix
- Czas Epoch: System reprezentowania czasu jako liczby sekund, które upłynęły od epoki Unix
- UTC (Uniwersalny Czas Koordynowany): Podstawowy standard czasu, według którego świat reguluje zegary i czas, niezależny od strefy czasowej
- Problem Roku 2038: Data, kiedy 32-bitowe znaczniki czasu Unix ulegną przepełnieniu, potencjalnie powodując, że systemy zinterpretują datę jako 1901
- ISO 8601: Międzynarodowy standard reprezentowania dat i godzin (np. 2024-06-29T12:00:00Z) jako alternatywa dla znaczników czasu Unix
Przykład
Aktualny znacznik czasu: 1719676800 → Data: 29 czerwca 2024 12:00:00 PM UTC. Konwersja daty: "1 stycznia 2025 00:00:00 UTC" → Znacznik czasu: 1735689600.
Interpretacja wyników
Konwerter działa w dwóch kierunkach: wprowadzenie znacznika czasu Unix daje czytelną dla człowieka datę, a wprowadzenie daty daje znacznik czasu Unix. Aktualny czas Unix jest wyświetlany u góry z przyciskiem odświeżania, więc zawsze możesz zobaczyć znacznik czasu na żywo bez wpisywania czegokolwiek.
Znaczniki czasu Unix liczą sekundy od 1 stycznia 1970 UTC (epoka Unix). Są niezależne od strefy czasowej — ten sam znacznik czasu reprezentuje tę samą chwilę wszędzie na Ziemi. Gdy wprowadzasz datę, konwerter używa Twojego lokalnego przesunięcia strefy czasowej do obliczenia znacznika czasu, ale możesz przełączyć na UTC, jeśli potrzebujesz wyników neutralnych wobec strefy czasowej.
Problem 2038 warto zrozumieć: 32-bitowe liczby całkowite ze znakiem ulegają przepełnieniu 19 stycznia 2038, co oznacza, że starsze systemy używające 32-bitowych znaczników czasu zawiną się do wartości ujemnych. Nowoczesne systemy używają 64-bitowych znaczników czasu, które nie ulegną przepełnieniu przez miliardy lat. Jeśli napotkasz nieoczekiwane daty wokół 1901 lub 2038, przepełnienie 32-bitowe jest prawdopodobną przyczyną.

