Convertir un Unix Timestamp en DateTime local et vice versa dans Google Sheets

Ce tutoriel décrit comment décoder, ou plutôt convertir, un Unix Timestamp en DateTime local dans Google Sheets.

En plus de la procédure décrite ci-dessus, je vous expliquerai comment convertir un DateTime local en temps Unix, c’est-à-dire l’inverse de la première conversion.

Je sais que la plupart d’entre vous sont familiers avec les termes Temps Unix, Unix Timestamp ou Epoch Time. En fait, tous ces termes font référence à une Date/Heure UTC encodée sur 10 chiffres.

La compréhension du Temps Unix est essentielle pour écrire une formule qui convertit un Unix Timestamp en DateTime local ou vice versa dans Google Sheets.

Je vais essayer de vous expliquer brièvement ce qu’est le Temps Unix, même si vous pouvez le rechercher sur Google.

Le Temps Unix est le nombre de secondes écoulées depuis le 1er janvier 1970 (Epoch).

Comme vous le savez peut-être, une journée normale (UTC) a une durée de 86400 secondes (24 heures 60 minutes 60 secondes). Ces secondes jouent un rôle essentiel dans la formule de conversion d’un Unix Timestamp en DateTime local dans Google Sheets.

Tout d’abord, passons aux étapes de conversion d’un DateTime local en Temps Unix. Cela vous aidera à mieux comprendre comment convertir un Unix Timestamp en DateTime/TimeStamp local dans Google Sheets.

Formule pour convertir un DateTime local en Temps Unix

Pour convertir un DateTime local, également appelé Timestamp, en Temps Unix, vous pouvez suivre les étapes suivantes dans Google Sheets.

Timestamp dans la cellule A2 : 13/10/2019 09:54:00

Pour vous aider à comprendre la conversion, avant de passer à la formule, apprenez comment convertir un Timestamp en secondes dans Google Sheets.

Timestamp en secondes

Voici les formules des cellules C2 et C3 pour convertir un DateTime, également appelé Timestamp, en secondes dans Google Sheets.

J’ai utilisé les fonctions Date et Heure dans ces formules.

   A   |    B    |    C    
--------------------------
       | DateTime | Seconds
--------------------------
 1     |          |        
 2     |   01/01/1970 00:00:00   |   2209161600   |   =DATE(1970,1,1)*86400
       |                          |                 |   Which is equal to =A2*86400
 3     |   13/10/2019 09:54:00   |   3780122040   |   =(DATE(2019,10,13)+time(9,54,0))*86400
       |                          |                 |   Which is equal to =A3*86400

Vous pourriez penser que soustraire les secondes, c’est-à-dire B3-B2, renverrait le Temps Epoch Unix du DateTime en A3, car le Temps Unix est le nombre de secondes depuis Epoch (1/1/1970 00:00:00).

Mais ce n’est que partiellement correct !

   A   |    B    |    C    
--------------------------
       |          |        
 4     |          |   1570960440   |   =3780122040-2209161600

Pour convertir le DateTime local, nous devons peut-être inclure un autre paramètre. Quel est-il ?

Si l’heure en A3 est en UTC, alors la formule =B3-B2 convertirait le Timestamp en Temps Unix. Sinon, vous devez d’abord trouver le fuseau horaire (heure locale de votre pays).

Dans mon cas, il s’agit de GMT+05:30. Cela signifie que le fuseau horaire est en avance de cinq heures et demie sur UTC.

Je dois convertir ces cinq heures et demie en secondes. Comment faire ?

   A   |    B    |    C    
--------------------------
       |          |        
 5     |  05:30   |   19800   |   =time(5,30,0)*86400

Remarque : Modifiez 05:30 en fonction du fuseau horaire de votre région.

Conversion du Temps Unix à partir du DateTime local

Nous avons maintenant le décalage GMT en secondes dans la cellule B5. Selon l’exemple ci-dessus, nous pouvons convertir le DateTime local en Temps Unix de la manière suivante :

   =3780122040-2209161600-19800
   Which is equal to;
   =B3-B2-B5
   or
   =B4-B5

En termes simples, vous pouvez utiliser la formule suivante pour convertir un DateTime local en Temps Unix dans Google Sheets.

   Generic Formula:
   DateTime*86400-Epoch*86400-GMT*86400

Remarque : Si votre fuseau horaire est GMT-, utilisez la formule générique suivante :

   Generic Formula:
   DateTime*86400-Epoch*86400+GMT*86400

En bref :

   (DateTime-Epoch-GMT)*86400

ou

   (DateTime-Epoch+GMT)*86400

Dans la formule, selon mon fuseau horaire, cela ressemblerait à ceci :

   =((DATE(2019,10,13)+time(9,54,0))-DATE(1970,1,1)-time(5,30,0))*86400

Puisque notre DateTime se trouve dans la cellule A3, nous pouvons remplacer la partie de formule correspondante (DATE(2019,10,13)+time(9,54,0) par la référence de cellule correspondante A3.

Example to Convert Local DateTime to Unix Time

Comment convertir un Unix Timestamp en DateTime local

Une fois que vous avez appris la conversion ci-dessus, l’inverse de celle-ci, c’est-à-dire comment convertir un Unix Timestamp en DateTime local, est simple.

Ici, notre Unix Timestamp à convertir en DateTime local se trouve dans la cellule B3.

Tout d’abord, convertissez le Temps Unix en secondes en DateTime.

Vous pouvez le faire en divisant le Temps Unix par 86400.

   1570940640/86400

Ensuite, ajoutez la Date et l’Heure Epoch à ce DateTime.

   =1570940640/86400+DATE(1970,1,1)+time(5,30,0)

Veuillez noter que si votre fuseau horaire est GMT-, modifiez la dernière partie de la formule en conséquence, comme -time(heures,minutes,secondes).

Dans la formule finale, vous pouvez remplacer le Temps Unix par la référence de cellule correspondante, ici la cellule B3.

   =B3/86400+DATE(1970,1,1)+time(5,30,0)

Dans la capture d’écran suivante, vous pouvez voir deux formules :

  1. Formule pour convertir un DateTime local en Temps Unix dans la cellule B3.
  2. Formule pour convertir le Temps Unix en DateTime local dans la cellule C3.

Example to Convert Unix Timestamp to Local DateTime in Google Sheets

Mise à jour du 14-02-2023 : Depuis que nous avons la nouvelle fonction EPOCHTODATE, nous pouvons remplacer la formule de la cellule C3 par =EPOCHTODATE(B3)+time(5,30,0).

J’espère que vous avez pu comprendre comment convertir un Unix Timestamp en DateTime local et vice versa dans Google Sheets.

Articles en lien