Totes les guies

Convertir un timestamp Unix en data i una data en timestamp

Publicat el · Actualitzat el 3 min de lectura

Un timestamp Unix compta el temps transcorregut des de l’1 de gener de 1970 a mitjanit en hora universal. Dues preguntes decideixen la data resultant: la unitat del nombre i el fus horari en què llegiu el resultat.

Un valor de referència

Convertir timestamp Unix dona tres lectures del mateix instant. Per a 1700000000, amb un navegador configurat a l’hora de París:

LecturaResultat
Data UTCTue, 14 Nov 2023 22:13:20 GMT
Data local14 de novembre de 2023 a les 23:13:20 UTC+1
ISO2023-11-14T22:13:20.000Z

L’hora local segueix el fus horari del navegador: una hora més a París a l’hivern. El mateix timestamp és un únic instant, llegit en dos fusos horaris.

La unitat es reconeix pel nombre de xifres

El paràmetre per defecte reconeix la unitat per la longitud del nombre. Els tres valors següents designen el mateix instant, amb la precisió corresponent.

NombreXifresUnitat reconegudaInstant obtingut
170000000010Segons14 nov. 2023, 22:13:20 UTC
170000000000013Mil·lisegons14 nov. 2023, 22:13:20 UTC
170000000012345616Microsegons14 nov. 2023, 22:13:20,123 UTC

La regla: fins a 11 xifres, segons; de 12 a 14, mil·lisegons; 15 i 16, microsegons. El paràmetre «mil·lisegons» força aquesta unitat.

La trampa de la regla

Com que la unitat es dedueix de la longitud, un valor ambigu es llegeix d’una sola manera: 10000000000 (11 xifres) dona el 20 de novembre de 2286, i 100000000000 (12 xifres) dona el 3 de març de 1973. Un timestamp en mil·lisegons anterior al març de 1973 té 11 xifres o menys, i es llegiria com a segons: forceu llavors el paràmetre «mil·lisegons».

Valors anteriors a 1970 i el límit de 2038

Un nombre negatiu designa un instant anterior a 1970: −1 dona el 31 de desembre de 1969 a les 23:59:59 UTC, i 0 dona l’1 de gener de 1970 a mitjanit.

El nombre 2147483647 és el més gran que cap en un enter de 32 bits amb signe: dona el 19 de gener de 2038 a les 03:14:07 UTC. El nombre següent, 2147483648, dona les 03:14:08: l’eina continua sense límit, però un sistema que emmagatzema l’hora en 32 bits no pot.

Convertir una data en timestamp

Introduïu una data en lloc d’un nombre: l’eina dona el timestamp en segons i en mil·lisegons.

EntradaTimestamp en segonsLectura
2026-01-011767225600Mitjanit en hora universal, sense fus horari indicat
2026-01-01T10:30:00+01:00176725980010:30 a París, és a dir, 09:30 en hora universal
2024-02-291709164800Any de traspàs acceptat

Una data sense fus horari es llegeix en hora universal, no en hora local: l’eina ho indica al resultat. Una data que no existeix, com el 30 de febrer de 2026, es rebutja amb un missatge.

Errors freqüents

  • Llegir mil·lisegons com a segons: la data cau milers d’anys massa lluny.
  • Oblidar el fus horari: una data llegida com a local i enviada després com a universal es desplaça una o diverses hores.
  • Escriure una data sense fus horari pensant en l’hora local, quan es llegirà en UTC.

Per comptar els dies entre dues dates, vegeu Comptar els dies entre dues dates.

Comprovar una conversió

  1. Rellegiu la línia UTC, que no depèn de l’aparell.
  2. Comproveu la unitat anunciada a la primera línia del resultat.
  3. Torneu a convertir la data resultant: hauríeu de recuperar el nombre de partida.

Convertir timestamp Unix