Przejdź do treści głównej
FreeOnlineTools Go
Polski
Wyjaśnienie

Czym Jest Unix Timestamp? Kompletnowe Wyjaśnienie Czasu Epoch

Autor: FreeOnlineTools Team · Zaktualizowano 2026-09-02

Szybka odpowiedź

Unix timestamp to liczba sekund od 1 stycznia 1970, 00:00:00 UTC (Unix epoch). Jest timezone-independent i łatwy do porównania. JavaScript używa milisekund (13 cyfr); Unix i większość API używa sekund (10 cyfr). Użyj naszego darmowego Timestamp Converter.

Wstęp

Unix timestamp (nazywany Unix epoch time, POSIX time lub Unix time) to liczba sekund od 1 stycznia 1970, 00:00:00 UTC —moment znany jako Unix epoch. Timestampy są powszechnie używane w systemach operacyjnych, bazach danych, logach i API ponieważ są timezone-independent (zawsze UTC), łatwe do porównania i kompaktowe. Jednak nie są ludzko-czytelne —1693526400 nic nie znaczy bez konwersji.

Krok po kroku

  1. Zrozum epokę Uniksa

    Epoka Uniksa przypada na 1 stycznia 1970 roku o godzinie 00:00:00 uniwersalnego czasu koordynowanego (UTC). Znacznik czasu Uniksa to liczba sekund od tego momentu. Pozytywne znaczniki czasu są po epoce; poprzedzają go negatywne znaczniki czasu (obsługiwane przez niektóre systemy).

  2. Odróżnij sekundy od milisekund

    Sygnatury czasowe systemu Unix podawane są zazwyczaj w sekundach (10 cyfr od 2026 r., np. 1693526400). Funkcje Date.now() i Date.getTime() JavaScript zwracają milisekundy (13 cyfr, np. 1693526400000). Zawsze sprawdzaj, jakiej jednostki oczekuje API — mieszanie ich jest najczęstszym błędem związanym ze znacznikami czasu.

  3. Zrozum niezależność strefy czasowej

    Sygnatury czasowe systemu Unix są zawsze podawane w formacie UTC. Nie zależą one od strefy czasowej użytkownika. Aby wyświetlić znacznik czasu w określonej strefie czasowej, przekonwertuj go na datę i zastosuj przesunięcie strefy czasowej. Dzięki temu znaczniki czasu są idealne do przechowywania i porównywania.

  4. Dowiedz się o problemie roku 2038

    Systemy używające 32-bitowych liczb całkowitych ze znakiem jako znaczników czasu przepełnią się 19 stycznia 2038 r. o godzinie 03:14:07 UTC — „problem roku 2038”. Nie ma to wpływu na systemy korzystające z 64-bitowych liczb całkowitych lub liczb JavaScript (64-bitowe liczby zmiennoprzecinkowe). Nowoczesne systemy są w dużej mierze bezpieczne pod kątem Y2038, ale starsze systemy wbudowane mogą nie być.

Przykłady

Znacznik czasu znanej daty

Wejście: 2023-09-01 00:00:00 UTC

Wyjście: 1693526400 (sekundy) lub 1693526400000 (milisekundy)

Epoka Uniksa

Wejście: 1970-01-01 00:00:00 UTC

Wyjście: 0

Granica problemu Y2038

Wejście: 2038-01-19 03:14:07 UTC

Wyjście: 2147483647 (maks. 32-bitowa liczba całkowita ze znakiem)

Typowe problemy

  • Mieszanie sekund i milisekund — JavaScript używa milisekund (Date.now()), Unix i większość APIs używa sekund. Podziel przez 1000, aby przeliczyć ms na sekundy; pomnóż przez 1000 w odwrotnej kolejności.
  • Zamieszanie w strefie czasowej — znaczniki czasu to UTC. Podczas wyświetlania przekonwertuj na lokalną strefę czasową użytkownika lub określ UTC. Nie stosuj przesunięć do surowego znacznika czasu.
  • Problem z rokiem 2038 — przepełnienie 32-bitowych całkowitych znaczników czasu ze znakiem w dniu 19.01.2038. Aby tego uniknąć, użyj 64-bitowych liczb całkowitych lub liczb JavaScript.
  • Ujemne znaczniki czasu — daty przed 1970-01-01 mają ujemne znaczniki czasu. Niektóre systemy ich nie obsługują.

Porady

  • Zawsze sprawdzaj, czy API oczekuje sekund czy milisekund — jest to najczęstszy błąd związany ze znacznikiem czasu.
  • Użyj ciągów ISO 8601 (np. „2023-09-01T00:00:00Z”) jako znaczników czasu czytelnych dla człowieka w APIs; używaj epoki Uniksa do przechowywania i obliczeń.
  • JavaScript Date.now() zwraca milisekundy; podziel przez 1000 i podłogę, aby otrzymać sekundy.
  • Skorzystaj z naszego konwertera znaczników czasu, aby przekonwertować znaczniki czasu na daty czytelne dla człowieka w przeglądarce.

Powiązane narzędzia

Powiązane przewodniki

Referencje