Techniques de conversion d'époque et de temps :
1. Convertir la date en heure :
Pour convertir une date et une heure en heure d'époque en quelques secondes, vous pouvez utiliser la commande `date` avec l'option ` +%s`.
Par exemple, pour convertir la date et l'heure « 1er janvier 1970 00:00:00 UTC » en heure d'époque, vous utiliserez la commande suivante :
```
$ date --utc -d '01/01/1970 00:00:00 UTC' +%s
```
Cette commande afficherait l’heure suivante :
```
0
```
2. Convertir l'heure en date :
Pour convertir l'heure en une date et l'heure, vous pouvez utiliser la commande `date` avec l'option ` -d @`.
Par exemple, pour convertir l'heure « 0 » en date et heure, vous utiliserez la commande suivante :
```
$ date -d @0
```
Cette commande afficherait la date et l'heure suivantes :
```
jeu. 1er janvier 00:00:00 UTC 1970
```
3. Ajouter/soustraire des secondes à/depuis l'époque :
Pour ajouter ou soustraire des secondes à partir de l'époque, vous pouvez utiliser la commande `date` avec les options ` -d @` et ` +%s`.
Par exemple, pour ajouter 60 secondes à l'heure « 0 », vous utiliserez la commande suivante :
```
$ date -d @0 +%s
```
Cette commande afficherait l’heure suivante :
```
60
```
Pour soustraire 60 secondes à l’heure « 60 », vous devez utiliser la commande suivante :
```
$ date --date='@60 secondes' -u +%s
```
5. Convertissez les secondes au format de date :
```
$ date -d @1585233869
```
Pour soustraire 1 jour (86 400 secondes) de l’heure :
```
$ date -d "maintenant - 1 jour" +%s
```
Voici 13 meilleurs exemples de conversion ou de modification d'une époque à l'aide de l'utilitaire de date sous Linux ou Unix :
1. Convertir la date en heure d'époque, en tenant compte du fuseau horaire :
Par exemple, pour convertir la date et l'heure « 1er janvier 1970 12:00:00 PM EST » en heure d'époque en secondes, vous utiliserez la commande suivante :
```
$ date --date '1970-01-01 12:00:00 EST' +%s
```
Ici, `date` est utilisé avec l'option `--date` pour convertir une chaîne représentant la date et l'heure en heure d'époque. ` +%s` formate la sortie en nombre de secondes depuis le 1er janvier 1970, 00:00:00 UTC.
Cette commande afficherait l’heure suivante :
```
3600
```
2. Convertir l'heure en date, en tenant compte de UTC :
Par exemple, pour convertir l'heure « 1585233869 » en une date et une heure au format UTC, vous devez utiliser la commande suivante :
```
$ date -ud @1585233869
```
Dans cet exemple, l'option « -ud » est utilisée avec le symbole « @ » pour interpréter l'heure de « 1585233869 » comme un horodatage Unix en UTC.
Cette commande afficherait la date et l'heure suivantes :
```
dim. 29 mars 2020 18:24:29 UTC
```
3. Convertir l'heure en fuseau horaire local :
Pour convertir l'heure "1585233869" en une date et une heure dans un fuseau horaire spécifique, utilisez `date -d @1585233869 -T "timezone"`, en remplaçant "timezone" par le fuseau horaire souhaité.
```
$ date -d @1585233869 -T "Amérique/New_York"
```
Cela afficherait :
```
dim. 29 mars 13:24:29 HAE 2020
```
4. Convertir la date en millisecondes d'époque (millisecondes depuis l'époque) :
Pour convertir une date comme « 1er juillet 2020, 12h30 » en millisecondes, utilisez « date +%s%3N », où « +%s » représente les secondes depuis l'époque et « %3N » ajoute 3 chiffres pour les millisecondes. .
```
$ date --date '1er juillet 2020, 12h30' +%s%3N
```
Cela génère des millisecondes d'époque :
```
1593630600992
```
5. Convertir les millièmes d'époque en date lisible par l'homme :
Pour convertir l'époque millis, comme 1593630600000, en une chaîne de date, utilisez `date -d @epoch-millis +'%Y-%m-%d %H:%M:%S.%3N'`.
```
$ date -d @1593630600000 +'%Y-%m-%d %H:%M:%S.%3N'
```
Sortir:
```
2020-07-01 12:30:00.000
```
6. Obtenir la date et l'heure actuelles dans un format lisible par machine :
`date +%s%3N` affiche les millisecondes d'époque, utile pour comparer deux dates.
```
$date +%s%3N
```
Sortir:
```
1593633240539
```
7. Ajouter ou soustraire des jours à l'époque :
`date -d @epoch-seconds +days` ajuste l'heure de l'époque selon le nombre de jours spécifié. Par exemple:
```
$ date -d @1593630600 +3 jours
```
Sortir:
```
jeu. 4 juil. 12:30:00 HAE 2020
```
8. Soustrayez les dates pour calculer la différence :
Pour calculer la différence entre deux dates, trouvez leurs secondes d’époque et soustrayez-les. Par exemple:
```
$ end_time=$(date +%s)
$ start_time=$(date -d "2019-07-01" +%s)
$ différence_en_secondes=$(( end_time - start_time ))
```
9. Ajouter ou soustraire des intervalles de temps :
Pour ajouter ou soustraire des intervalles spécifiques tels que 5 heures et 30 minutes à partir d'une époque donnée, utilisez :
```
$ date -d @1593630600 +5 heures -30 minutes
```
Sortir:
```
Vendredi 2 juillet 12:00:00 HAE 2020
```
10. Compter la date jusqu'à l'événement futur :
Pour déterminer combien de temps il faudra attendre avant une date spécifique dans le futur, convertissez les deux dates pertinentes en secondes d'époque et calculez la différence. Par exemple:
```
$ end_time=$(date -d "2021-12-25 00:00" +%s)
$ start_time=$(date +%s)
$ secondes_until_Christmas=$(( end_time - start_time ))
```
11. Compter les dates depuis l'événement passé :
De même, compter le nombre de jours depuis un événement comme un anniversaire impliquerait de soustraire les secondes d'époque de la date de l'événement de la date actuelle :
```
$ anniversaire=$(date -d "01/09/1999" +%s)
$ heure_actuelle=$(date +%s)
$ jours_since_birthday=$(( (current_time - anniversaire)/(60*60*24) ))
```
12. Générer une heure aléatoire :
Pour créer un horodatage aléatoire dans une plage de dates spécifiée, utilisez la commande suivante :
```
$ min_time=$(date -d "01/07/2019" +%s)
$ max_time=$(date -d "2020-07-31" +%s)
$ random_time=$(shuf -i $min_time-$max_time -n1)
$date -d @$random_time
```
13. Convertissez des délais lisibles par l'homme en secondes :
Pour simplifier les calculs de temps, convertissez les intervalles de temps lisibles par l'homme en secondes à l'aide de la calculatrice « expr » :
```
$ secondes_5_heures=$(expr 5 \* 60 \* 60)
$ date +%s -d "maintenant - $seconds_5_hours secondes"
```
Cela affiche la date/heure actuelle diminuée de 5 heures :
```
Vendredi 9 juillet 15:02:20 HAE 2021
```
N'oubliez pas que lorsqu'il s'agit de calculs liés au temps, la sélection du fuseau horaire approprié est cruciale pour garantir des résultats précis.
|