Tech Help

De Unix Timestamp a data: segons, mil·lisegons i UTC explicats

Converteix un Unix timestamp a una data. Mira segons davant mil·lisegons, UTC davant hora local, ISO 8601 i com tornar d'una data al temps epoch.

Resposta ràpida

Un Unix timestamp representa el temps respecte a l'Unix epoch: 1970-01-01 00:00:00 UTC. Sovint es desa com a segons des de l'epoch o com a mil·lisegons des de l'epoch.

Per convertir bé, primer cal saber quina unitat tens. 1720000000 segons són 2024-07-03 09:46:40 UTC. 1720000000000 mil·lisegons són el mateix instant.

El timestamp identifica un instant. UTC, l'hora local o una zona IANA només canvien com es mostra aquest instant.

Aquesta és una guia de conversió: timestamp a data, data a timestamp, UTC davant local, i ISO 8601. Si un valor esdevé de cop una data de 1970, sol ser un desajust de segons/mil·lisegons: vegeu Unix Timestamp en segons vs mil·lisegons: per què la data mostra 1970.

Què és un Unix Timestamp?

Unix timestamp, Unix time i epoch time solen significar el temps transcorregut des de 1970-01-01 00:00:00 UTC. El nombre no és una cadena de data formatada amb etiqueta de fus horari. El mateix instant es pot mostrar amb hores diferents a UTC, Nova York, Tòquio o Seül. Els Unix timestamps no són sempre segons: a la pràctica els mil·lisegons són habituals.

Què és l’Unix Epoch?

L’Unix epoch és 1970-01-01 00:00:00 UTC. El timestamp 0 és aquest instant. Un timestamp positiu és posterior a l’epoch. Alguns sistemes admeten un timestamp negatiu per a un moment anterior a l’epoch, però el suport del llenguatge i del rang de dates varia.

El meu timestamp és en segons o en mil·lisegons?

1720000000 són segons; 1720000000000 són mil·lisegons; són el mateix instant. Una pista pràctica: unes 10 xifres sovint són segons; unes 13, mil·lisegons. El recompte de xifres és només una heurística. Dates passades o futures, altres unitats o un epoch personalitzat poden semblar diferents. Convertidor de data i hora pot convertir amb segons, mil·lisegons o automàtic (≤10 xifres com a segons, ≥13 com a mil·lisegons): tria la unitat quan la coneguis.

Per què la unitat incorrecta produeix la data incorrecta?

JavaScript Date espera mil·lisegons. Passar 1720000000 com si fossin mil·lisegons dóna 1970-01-20 21:46:40 UTC. Tractar mil·lisegons com a segons, o a l’inrevés, cau en una data molt distinta. Per al camí de diagnòstic de 1970, vegeu Unix Timestamp en segons vs mil·lisegons: per què la data mostra 1970.

new Date(1720000000);
// 1970-01-20T21:46:40.000Z

Com convertir un Unix timestamp en segons

Multiplica els segons per 1000 per obtenir mil·lisegons. JavaScript Date es basa en mil·lisegons, així que fes servir new Date(timestamp * 1000).

const timestamp = 1720000000;
const date = new Date(timestamp * 1000);
date.toISOString();
// 2024-07-03T09:46:40.000Z

Com convertir un timestamp en mil·lisegons

Passa els mil·lisegons a Date directament. No tornis a multiplicar per 1000 un timestamp que ja és en mil·lisegons.

const timestamp = 1720000000000;
const date = new Date(timestamp);
date.toISOString();
// 2024-07-03T09:46:40.000Z

Per què el mateix timestamp mostra una hora distinta?

Un Unix timestamp és un sol instant. Mostrar-lo en UTC, en hora local o en una zona IANA triada canvia l’hora del rellotge. Per a 1720000000000, UTC és 2024-07-03 09:46:40. America/New_York en aquella data és 2024-07-03 05:46:40 (EDT). Asia/Seoul és 2024-07-03 18:46:40 (UTC+9). Aquests valors de Nova York i Seül surten d’Intl, no d’un lema de desfasament fix.

Un Unix timestamp conté un fus horari?

No. No desa America/New_York ni Asia/Seoul. El timestamp identifica un instant. El fus horari s’aplica en formatar aquest instant com a data i hora llegibles. L’epoch es defineix respecte a UTC; el nombre en si no és «un camp de fus horari UTC».

Unix Timestamp davant d’ISO 8601

1720000000 i 2024-07-03T09:46:40Z poden representar el mateix instant. Unix és un valor numèric de temps transcorregut. ISO 8601 és una cadena de data i hora llegible i pot acabar en Z (UTC) o en un desfasament numèric. Z significa UTC; de vegades s’anomena Zulu. No són el mateix format.

Com s’obté l’Unix timestamp actual?

En JavaScript, Date.now() són mil·lisegons. Math.floor(Date.now() / 1000) són segons. No deixis un «ara» fixat en un article: es mou.

Date.now();
Math.floor(Date.now() / 1000);

Es pot convertir una data de tornada a Unix timestamp?

Sí. Des d’una cadena ISO UTC explícita, getTime() retorna mil·lisegons; divideix per 1000 i arrodoneix cap avall per a segons.

const date = new Date("2024-07-03T09:46:40Z");
date.getTime();
// 1720000000000
Math.floor(date.getTime() / 1000);
// 1720000000

Ves amb compte amb els formats de data ambigus

03/07/2024 pot ser el 7 de març o el 3 de juliol segons la localitat. Prefereix una data i hora a l’estil ISO amb fus horari o desfasament. Convertidor de data i hora rebutja dates numèriques ambigües com 01/02/2026 i demana un selector de data o un valor a l’estil ISO.

I l’horari d’estiu?

Un Unix timestamp no desa una marca d’horari d’estiu. La vista local aplica les regles de la zona. America/New_York fa servir desfasaments diferents a l’hivern i a l’estiu, així que «Nova York és UTC-5» no sempre és cert.

Els Unix timestamps inclouen segons intercalars?

El temps POSIX/Unix típic no compta els segons intercalars com a segons SI extra en una escala contínua. Les plataformes poden diferir. En una conversió quotidiana pots ignorar aquest detall.

Errors habituals en convertir un Unix timestamp

Aquestes confusions produeixen la data incorrecta o l’hora incorrecta al rellotge:

Segons tractats com a mil·lisegons
Un valor modern en segons acaba a prop de 1970 en JavaScript Date.

Mil·lisegons tractats com a segons
La data salta molt lluny en el futur.

Tractar 10 o 13 xifres com una llei
El recompte de xifres és una pista, no una garantia.

Confondre UTC amb l’hora local
L’instant és el mateix; el rellotge mostrat pot diferir.

Assumir que hi ha un fus horari dins del nombre
Els noms IANA s’apliquen en mostrar, no es desen al timestamp.

Dates ambigües, lemes d’horari d’estiu o un ×1000 de més
Fes servir entrada a l’estil ISO. No tornis a multiplicar un timestamp en mil·lisegons.

Exemples UTC verificats

Aquestes hores UTC es van calcular, no s’han endevinat:

Entrada Unitat UTC
0 segons 1970-01-01 00:00:00
1720000000 segons 2024-07-03 09:46:40
1720000000000 mil·lisegons 2024-07-03 09:46:40
1720000000 mil·lisegons 1970-01-20 21:46:40

Una guia simple per decidir la conversió

Si la font nomena la unitat, fes-la servir. Si no, el recompte de xifres és una pista: després comprova que la data sembli plausible. Converteix segons a mil·lisegons quan l’API necessiti ms. Tria UTC, local o una zona IANA per mostrar. ISO 8601 serveix per desar i intercanviar.

  • Tens un Unix timestamp
  • Unitat indicada? Fes-la servir; si no, mira la magnitud
  • Segons? ×1000 si l'API necessita mil·lisegons
  • Mil·lisegons? Fes-los servir tal qual en una API basada en ms
  • Mostra com a UTC, local o una zona IANA
  • Necessites una cadena? ISO 8601 pot encaixar
El nombre és un instant. El format tria l'hora del rellotge.
Un timestamp és un instant, no un format de visualització

El timestamp identifica un punt en el temps. UTC, l'hora local o un fus horari només decideixen com es mostra aquest instant a una persona.

Converteix Unix timestamps al teu navegador

NEXNARA Convertidor de data i hora converteix segons i mil·lisegons Unix, mostra UTC, hora local i ISO 8601, i converteix entre fusos horaris IANA.

El mode Unix admet segons, mil·lisegons, unitat automàtica, hora actual i data a timestamp. El mode de fus horari cerca noms IANA, usa la zona del navegador i aplica desfasaments Intl amb horari d’estiu. El mode de format té sortida llegible segons localitat, visualització 12/24 i un filtre de dates ambigües. La diferència de dates és un mode a part.

La conversió usa les API Date i Intl del navegador. Es rebutgen els valors que Date no pot representar. La unitat automàtica no endevina valors de 11–12 xifres; tria segons o mil·lisegons.

La conversió de dates i timestamps passa al teu navegador. Les entrades no s’envien a un servidor de NEXNARA per convertir-les. Els anuncis i altres funcions del lloc sí que usen la xarxa.

Enganxa un timestamp a Convertidor de data i hora i compara UTC, hora local i ISO 8601 abans de triar la unitat.

FAQ

Com converteixo un Unix timestamp a una data?

Coneix la unitat. En JavaScript, per a segons fes servir new Date(n * 1000). Per a mil·lisegons, new Date(n). Després formata com a UTC, local o una zona.

L’Unix timestamp és en segons o en mil·lisegons?

Pot ser qualsevol. Unes 10 xifres sovint són segons i unes 13 mil·lisegons, però és una heurística, no una regla.

Per què el meu timestamp mostra 1970?

Sol ser un valor en segons llegit com a mil·lisegons. Vegeu Unix Timestamp en segons vs mil·lisegons: per què la data mostra 1970.

L’Unix timestamp és sempre UTC?

L’epoch es defineix respecte a UTC, i el nombre identifica un instant. El fus horari de visualització és a part. No és «un camp de fus horari UTC» emmagatzemat.

Un Unix timestamp conté un fus horari?

No. No porta un identificador IANA. El fus horari s’aplica en formatar l’instant.

Com converteixo una data a Unix timestamp?

Des d’una cadena ISO UTC, date.getTime() són mil·lisegons; Math.floor(date.getTime() / 1000) són segons.