Convertor Unix timestamp: secunde, milisecunde, UTC si ora locala
Convertorul Unix timestamp transforma valori numerice in data si ora sau transforma o data aleasa intr-un timestamp. Pagina afiseaza si timestamp-ul live curent, calculat cu Date.now() impartit la 1000 si rotunjit in jos. In tabul timestamp catre data, poti alege daca valoarea introdusa este in secunde sau milisecunde. Daca alegi secunde, instrumentul inmulteste cu 1000 pentru a obtine milisecunde JavaScript; daca alegi milisecunde, valoarea este folosita direct.
Rezultatul include data UTC, data locala a browserului si o diferenta relativa fata de momentul curent, de tip +3d sau -2h. In tabul data catre timestamp, campul datetime-local este interpretat in fusul orar local al browserului, apoi pagina afiseaza timestamp-ul in secunde si in milisecunde. Acest comportament este important: aceeasi ora scrisa local poate corespunde altui instant UTC pentru un utilizator din alt fus orar.
Epoch, secunde si milisecunde
Unix epoch este 1970-01-01 00:00:00 UTC. O zi are 86.400 secunde, iar o saptamana 604.800 secunde. Multe API-uri folosesc secunde, in timp ce JavaScript foloseste intern milisecunde. Daca un timestamp pare sa duca intr-un an absurd, cel mai probabil ai confundat secunde cu milisecunde. De exemplu, 1700000000 este un timestamp in secunde, iar 1700000000000 este valoarea echivalenta in milisecunde.
Fus orar si problema anului 2038
Conversia UTC este stabila pentru comparatii intre sisteme, dar afisarea locala depinde de setarile browserului si de regulile de daylight saving time. Pentru loguri, baze de date si integrari, pastreaza clar daca valoarea este UTC sau local time. Cardul lateral mentioneaza limita 2.147.483.647, asociata sistemelor vechi pe 32 de biti, care corespunde aproximativ datei 2038-01-19 03:14:07 UTC. Sistemele moderne folosesc de obicei reprezentari mai largi, dar API-urile vechi pot inca avea aceasta limita.
Exemple pentru API-uri si loguri
Daca un API returneaza 1710000000, valoarea este probabil in secunde. Daca returneaza 1710000000000, este probabil in milisecunde. In JavaScript, new Date(1710000000) ar interpreta numarul ca milisecunde si ar da o data gresita pentru majoritatea API-urilor care trimit secunde. De aceea, convertorul are selector explicit pentru unitate. Pentru loguri de server, compara intotdeauna UTC cu ora locala afisata de sistemul unde investighezi incidentul.
Campul datetime-local nu contine fus orar in textul introdus. Browserul il interpreteaza ca ora locala, apoi calculeaza milisecundele de la epoch. Daca vrei sa comunici un timestamp altcuiva, trimite timestamp-ul numeric sau data ISO in UTC, nu doar ora locala. Pentru evenimente recurente, daylight saving time poate face ca o ora locala sa sara sau sa se repete in anumite zile.
Comentarii