Konwerter znaczników czasu Unix
Narzędzie do dwukierunkowej konwersji między znacznikami czasu Unix/Linux a datami i godzinami, umożliwiające porównanie w różnych strefach czasowych.
Aktualny czas
Konwersja znacznika czasowego na datę
Wynik konwersji(automatycznie)
Konwersja daty na znacznik czasowy
Wynik konwersji(automatycznie)
Kalkulator dat i godzin dla wielu znaczników czasowych
Kalkulator dat i godzin dla wielu znaczników czasowych
Kalkulator znaczników czasowych dla wielu dat
Kalkulator znaczników czasowych dla wielu dat
Instrukcja obsługi
Ten narzędzie służy do szybkiego dwukierunkowego konwersowania znaczników czasu Unix na daty i godziny oraz odwrotnie w różnych scenariuszach. Obsługuje precyzję w sekundach i milisekundach oraz umożliwia wybór strefy czasowej celu do porównawczego wyświetlania. Udostępnia pojedynczy i wielokarty konwertera. Konwersja odbywa się natychmiast po wprowadzeniu danych, a zmiana strefy czasowej automatycznie odświeża wyniki. Ponadto zawiera zakresy czasu z ostatnich dni i często używane przedziały czasu, co spełnia potrzeby programistyczne i codziennych konwersji.
Funkcje i cechy narzędzia
- Konwersja natychmiast po wprowadzeniu danych, obsługuje automatyczne rozpoznawanie znaczników czasu w sekundach/milisekundach.
- Obsługuje wybór i wyświetlanie globalnych stref czasowych: lokalna, UTC, wybrana strefa czasowa - trzy widoki.
- Wielokarty konwertera, ułatwiające porównywanie danych w partiach.
- Responsywny interfejs, przyjazny dla klawiatury, dobrą dostępnością.
- Wbudowane zakresy czasu z ostatnich dni i często używane przedziały czasu, gotowe do skopiowania i użycia.
Co to jest znacznik czasowy?
Znacznik czasu Unix (Unix Timestamp) to łączna liczba sekund lub milisekund, które upłynęły od 1970-01-01 00:00:00 UTC (Unix Epoch).
Znacznik czasu to liczba reprezentująca czas, zazwyczaj w sekundach lub milisekundach.
Punkt początkowy znacznika czasu to 1 stycznia 1970 roku, 00:00:00 UTC. Ten czas jest nazywany epoką Unix.
Znacznik czasu został pierwotnie użyty w systemie operacyjnym Unix, dlatego często nazywany jest znacznikiem czasu Unix.
Znaczniki czasu są szeroko stosowane w programowaniu i komunikacji sieciowej, szczególnie w tworzeniu stron internetowych.
Powszechne precyzje: sekundy (np. 1735689600) i milisekundy (np. 1735689600000). Podczas reprezentowania dat i godzin związanych ze strefami czasowymi należy formatować je z uwzględnieniem strefy czasowej.
Popularne znaczniki czasowe (Czas trwania)
Problem 2038 z znacznikami czasowymi
Problem 2038 dotyczy problemu przepełnienia 32-bitowego signed integer przechowującego znacznik czasu Unix (w sekundach, od 1 stycznia 1970, 00:00:00 UTC) po 19 stycznia 2038, 03:14:07.
Ponieważ zakres 32-bitowego signed integer to od -2 147 483 648 do 2 147 483 647, a znacznik czasu dla 19 stycznia 2038, 03:14:07 UTC wynosi 2 147 483 647, po tym punkcie czasowym 32-bitowy signed integer nie będzie w stanie reprezentować kolejnych znaczników czasu.
Na problem ten wpływają głównie stare systemy lub oprogramowanie wykorzystujące 32-bitowy time_t. Współczesne systemy zazwyczaj używają 64-bitowych (np. 64-bitowych liczb całkowitych w milisekundach) i nie mają tego problemu.
Zaleca się użycie 64-bitowych znaczników czasu lub bibliotek czasu obsługujących duże zakresy dat.
Jak uzyskać/konwertować znaczniki czasowe za pomocą języków programowania
Math.floor(Date.now() / 1000); // seconds
Date.now(); // milliseconds
new Date(1735689600 * 1000).toISOString();
new Date('2025-01-01T00:00:00Z').getTime();
time(); // seconds
intval(microtime(true) * 1000); // milliseconds
date('Y-m-d H:i:s', 1735689600);
strtotime('2025-01-01 00:00:00');
import time
int(time.time()) # seconds
int(time.time() * 1000) # milliseconds
import datetime
datetime.datetime.utcfromtimestamp(1735689600).isoformat()
import datetime
int(datetime.datetime(2025,1,1,0,0,0,tzinfo=datetime.timezone.utc).timestamp())
import "time"
time.Now().Unix() // seconds
time.Now().UnixMilli() // milliseconds
import "time"
time.Unix(1735689600, 0).UTC().Format(time.RFC3339)
import "time"
ts := time.Date(2025,1,1,0,0,0,0,time.UTC).Unix()
use chrono::Utc;
let now = Utc::now();
let sec = now.timestamp(); // seconds i64
let ms = now.timestamp_millis(); // milliseconds i128
use chrono::{DateTime, NaiveDateTime, Utc};
let dt: DateTime = NaiveDateTime::from_timestamp_opt(1735689600, 0)
.unwrap()
.and_utc();
let iso = dt.to_rfc3339();
use chrono::DateTime;
let ts = DateTime::parse_from_rfc3339("2025-01-01T00:00:00Z")
.unwrap()
.timestamp();
-- MySQL / MariaDB
SELECT UNIX_TIMESTAMP();
-- PostgreSQL
SELECT EXTRACT(EPOCH FROM NOW())::bigint;
-- SQLite
SELECT strftime('%s', 'now');
-- MySQL / MariaDB
SELECT FROM_UNIXTIME(1735689600);
-- PostgreSQL
SELECT to_timestamp(1735689600) AT TIME ZONE 'UTC';
-- SQLite
SELECT datetime(1735689600, 'unixepoch');
-- MySQL / MariaDB
SELECT UNIX_TIMESTAMP('2025-01-01 00:00:00');
-- PostgreSQL
SELECT EXTRACT(EPOCH FROM TIMESTAMP '2025-01-01 00:00:00+00')::bigint;
-- SQLite
SELECT strftime('%s', '2025-01-01 00:00:00');