Instrument de conversie pentru marcaj de timp Unix

Un instrument profesionist de conversie pentru marcaj de timp Unix, care acceptă conversia bidirecțională între marcaje de timp și dată-oră, recunoscând automat marcaje de timp în secunde (9-10 cifre), milisecunde (13), microsecunde (16) și nanosecunde (19) după numărul de cifre. Oferă trei vederi: oră locală, oră UTC și fus orar selectat, acceptă mai multe carduri de convertor pentru comparație în lot, și include intervale de timp recente integrate și perioade comune pentru depanare în dezvoltare și conversii zilnice. Interfață adaptivă, conversie instantanee la introducere, reîmprospătare automată a rezultatului la comutarea fusurilor orare, și toate operațiunile sunt efectuate local în browserul dumneavoastră, asigurând confidențialitatea și securitatea.

Oră curentă

Marcaj de timp curent (secunde)
—
Oră curentă
—

Marcaj de timp în dată

Acceptă marcaje de timp în secunde, milisecunde, microsecunde și nanosecunde, detectate automat după numărul de cifre (9-10 cifre secunde, 13 cifre ms, 16 cifre μs, 19 cifre ns)

Rezultat conversie(Automat)

Dată în marcaj de timp

Rezultat conversie(Automat)

Convertor multi-marcaje de timp în dată-oră

Convertor multi-marcaje de timp în dată-oră

Convertor multi-dată în marcaj de timp

Convertor multi-dată în marcaj de timp

Instrucțiuni de utilizare

Acest instrument este utilizat pentru a finaliza rapid conversia bidirecțională dintre marcajele temporale Unix și datele-oră în diferite scenarii. Suportă precizia secundă și milisecundă și vă permite să selectați fusul orar țintă pentru afișare comparativă. Oferă convertoare cu o singură cartelă și cu mai multe cartele. Conversia se realizează în timp ce introduceți date, iar rezultatele sunt reîmprospătate automat atunci când comutați fusul orar. De asemenea, dispune de intervale de timp recente și de perioade de timp comune integrate, pentru a satisface nevoile de depanare în dezvoltare și de conversii zilnice.

Autodetectare: Instrumentul detectează automat precizia după numărul de cifre: secunde (9-10 cifre), milisecunde (13), microsecunde (16) și nanosecunde (19) — nu este necesară selectarea manuală a unității.
Fus orar: Afișează ora locală și ora UTC, ceea ce facilitează utilizarea în diferite fusuri orare.

Caracteristicile instrumentului

  • Conversie în timp ce introduceți, cu recunoașterea automată a marcajelor temporale de tip secundă/milisecundă/microsecundă/nanosecundă.
  • Suport pentru selectarea și afișarea fusurilor orare globale: trei vizualizări pentru ora locală, UTC și fusul orar selectat.
  • Mai multe cartele de convertor pentru comparație în loturi ușoară.
  • Interfață receptivă și compatibilă cu tastatura, cu accesibilitate bună.
  • Intervale de timp recente și perioade de timp comune integrate, pe care le puteți copia și utiliza.

Ce este un marcaj de timp?

Un marcaj temporal Unix este numărul total de secunde sau milisecunde care au trecut de la 01.01.1970, 00:00:00 UTC (Epoca Unix).

Un marcaj temporal este un număr care reprezintă timpul, de obicei în secunde sau milisecunde.

Punctul de plecare al unui marcaj temporal este 00:00:00 UTC din 1 ianuarie 1970, care se numește Epoca Unix.

Marcajele temporale au fost utilizate inițial în sistemele de operare Unix, de aceea sunt adesea numite marcaje temporale Unix.

Marcajele temporale sunt utilizate pe scară largă în programare și comunicarea în rețea, în special în dezvoltarea web.

Precizii comune: secunde (de ex., 1735689600) și milisecunde (de ex., 1735689600000). Atunci când reprezentați date-oră legate de fusuri orare, acestea trebuie formatate și afișate în combinație cu fusul orar.

Marcaje de timp recente (bazate pe fusul orar global)

Marcaje de timp comune (perioade)

1 Minut
60 Secunde
1 Oră
3600 Secunde
1 Zi
86400 Secunde
1 Săptămână
604800 Secunde
1 Lună (30 zile)
2592000 Secunde
1 An (365 zile)
31536000 Secunde

Problema anului 2038 a marcajelor de timp

Problema Anului 2038 se referă la problema în care un număr întreg întregiat pe 32 de biți care stochează un marcaj temporal Unix (în secunde de la 01.01.1970, 00:00:00 UTC) se va revărsa după 19.01.2038, 03:14:07 UTC.

Deoarece intervalul unui număr întreg întregiat pe 32 de biți este de la -2.147.483.648 la 2.147.483.647, iar marcajul temporal de la 19.01.2038, 03:14:07 UTC este 2.147.483.647, un număr întreg întregiat pe 32 de biți nu va mai putea reprezenta marcajele temporale ulterioare acestui moment.

Sistemele mai vechi sau software-ul care utilizează un time_t pe 32 de biți sunt cele mai afectate. Sistemele moderne utilizează de obicei 64 de biți (cum ar fi un număr întreg pe 64 de biți în milisecunde) și nu se confruntă cu această problemă.

Se recomandă utilizarea marcajelor temporale pe 64 de biți sau a unei biblioteci de timp care acceptă un interval de date larg.

Cum să obțineți/convertiți marcaje de timp prin limbaje de programare

JavaScript
Obține marcaj de timp curent
Math.floor(Date.now() / 1000); // seconds
Date.now(); // milliseconds
Marcaj de timp → Dată
new Date(1735689600 * 1000).toISOString();
Dată → Marcaj de timp
new Date('2025-01-01T00:00:00Z').getTime();
PHP
Obține marcaj de timp curent
time();                // seconds
intval(microtime(true) * 1000); // milliseconds
Marcaj de timp → Dată
date('Y-m-d H:i:s', 1735689600);
Dată → Marcaj de timp
strtotime('2025-01-01 00:00:00');
Python
Obține marcaj de timp curent
import time

int(time.time())        # seconds
int(time.time() * 1000) # milliseconds
Marcaj de timp → Dată
import datetime

datetime.datetime.utcfromtimestamp(1735689600).isoformat()
Dată → Marcaj de timp
import datetime

int(datetime.datetime(2025,1,1,0,0,0,tzinfo=datetime.timezone.utc).timestamp())
Go
Obține marcaj de timp curent
import "time"

time.Now().Unix()      // seconds
time.Now().UnixMilli() // milliseconds
Marcaj de timp → Dată
import "time"

time.Unix(1735689600, 0).UTC().Format(time.RFC3339)
Dată → Marcaj de timp
import "time"

ts := time.Date(2025,1,1,0,0,0,0,time.UTC).Unix()
Rust
Obține marcaj de timp curent
use chrono::Utc;

let now = Utc::now();
let sec = now.timestamp();        // seconds i64
let ms  = now.timestamp_millis(); // milliseconds i128
Marcaj de timp → Dată
use chrono::{DateTime, NaiveDateTime, Utc};

let dt: DateTime = NaiveDateTime::from_timestamp_opt(1735689600, 0)
    .unwrap()
    .and_utc();
let iso = dt.to_rfc3339();
Dată → Marcaj de timp
use chrono::DateTime;

let ts = DateTime::parse_from_rfc3339("2025-01-01T00:00:00Z")
    .unwrap()
    .timestamp();
SQL
Obține marcaj de timp curent
-- MySQL / MariaDB
SELECT UNIX_TIMESTAMP();

-- PostgreSQL
SELECT EXTRACT(EPOCH FROM NOW())::bigint;

-- SQLite
SELECT strftime('%s', 'now');
Marcaj de timp → Dată
-- MySQL / MariaDB
SELECT FROM_UNIXTIME(1735689600);

-- PostgreSQL
SELECT to_timestamp(1735689600) AT TIME ZONE 'UTC';

-- SQLite
SELECT datetime(1735689600, 'unixepoch');
Dată → Marcaj de timp
-- 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');