Comment utiliser le module de temps de Python

Le module de temps de Python offre une grande variété de fonctionnalités liées au temps et est souvent pratique lors de la création de votre backend avec Python. En utilisant cette bibliothèque, vous pouvez récupérer l'heure et la date actuelles dans des formats standard. Vous pouvez calculer les décalages horaires et planifier des opérations spécifiques au temps dans votre code.

Avec des exemples pratiques, nous allons vous présenter quelques-unes des manières les plus utiles d'utiliser la bibliothèque de temps.

Premiers pas avec la bibliothèque de temps

Le module de temps est l'un des trésors les plus intrigants du référentiel de bibliothèque polyvalent de Python. Il est intégré à Python, vous n'avez donc pas besoin de l'installer séparément. Il vous suffit de l'importer dans votre code pour commencer à l'utiliser.

Bien que la bibliothèque temporelle de Python contienne de nombreuses méthodes, et que cela puisse sembler écrasant au premier abord, nous nous concentrerons sur celles que vous utiliserez probablement le plus souvent.

Pour commencer à utiliser le module de temps , importez-le dans votre script avec l'instruction suivante :

 import time

Obtenir l'époque par défaut

La signature d'époque de la bibliothèque de temps commence le premier jour et heure de 1970 sur les systèmes Unix par défaut. Cependant, cela dépend de la plate-forme. Ainsi, l'époque ou l'heure et la date de début peuvent être différentes, selon le système d'exploitation que vous utilisez.

Pour afficher l'époque par défaut sur votre système d'exploitation :

 import time
default_base = time.gmtime(0)
print(default_base)

time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1,
tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3,
tm_yday=1, tm_isdst=0)

La sortie du tuple ci-dessus (un objet de type time.struct_time ) contient la structure temporelle du module de temps . C'est là que la bibliothèque stocke les détails de la date et de l'heure par défaut. D'après le résultat, tm_year remonte à 1970, avec d'autres propriétés ayant zéro comme valeur par défaut. Soit dit en passant, gmtime renvoie l'heure de Greenwich, qui peut être différente de votre fuseau horaire local.

Vous pouvez obtenir l'époque locale en utilisant plutôt time.localtime() :

 import time
default_base = time.localtime(0)
print(default_base)

L'exécution du code ci-dessus peut modifier les valeurs des propriétés individuelles, en fonction de votre fuseau horaire local. Par exemple, pendant l'heure d'été britannique au Royaume-Uni, tm_hour sera "1" au lieu de "0" de GMT.

Connexe : Comment exécuter un script Python

Voir le détail de l'heure et de la date actuelles

Pour obtenir l'heure actuelle en tant qu'objet time.struct_time , appelez time.gmtime() sans aucun argument :

 import time
current_time = time.gmtime()
print(current_time)

time.struct_time(tm_year=2021, tm_mon=10, tm_mday=2,
tm_hour=11, tm_min=13, tm_sec=18, tm_wday=5,
tm_yday=275, tm_isdst=0)

Comme vous l'avez fait dans les exemples précédents, remplacez time.gmtime() par time.localtime() pour voir votre heure locale actuelle.

Calculer le temps entre l'époque et l'heure actuelle

Utilisez la fonction time.time() pour voir le nombre de secondes entre l'heure actuelle et l'époque :

 import time
print("Time difference in seconds:", time.time())

Time difference in seconds: 1633178361.142249

Pour voir la différence d'année :

 import time

# Calculate the number of years:
print("Year difference is approximately:", round(time.time() / (3600 * 365 * 24)), "years")

Year difference is approximately: 52 years

Extraire l'heure locale actuelle

Ce n'est pas souvent nécessaire en pratique, mais vous pouvez accéder à chacune des valeurs d'un objet time.struct_time en accédant directement à ses propriétés.

Par exemple, pour obtenir l'heure, la minute et l'année actuelles à partir de votre heure locale actuelle :

 import time

current_local_time = time.localtime()

hours = current_local_time.tm_hour
mins = current_local_time.tm_min
year = current_local_time.tm_year

print(("The local time and year detail are: {}th hour, {}mins, and year {}").format(hours, mins, year))

The local time and year detail are: 11th hour, 49mins, and year 2021

Pour automatiser la sortie au lieu de la coder en dur comme nous l'avons fait ci-dessus, vous pouvez afficher l'heure locale actuelle en utilisant la fonction time.ctime() .

Voici comment voir l'heure locale actuelle en utilisant time.ctime() :

 import time
print(time.ctime())

Sat Oct 2 13:58:07 2021

Mais l'option ci-dessus ne vous donne aucun contrôle sur la sortie.

Pour manipuler la sortie, vous pouvez chaîner le format de l'heure à l'aide de time.strftime() avec des annotations de chaîne :

 import time
current_local_time = time.localtime()

# Get the current local time:
current_local_time = time.localtime()

# Stringify the current local time using string annotations:
dtime = time.strftime("The date and time is: %a, %d-%b-%Y, %I:%M %p", current_local_time)

print(dtime)

The date and time is: Sat, 02-Oct-2021, 11:57 AM

Dans le code ci-dessus, %a représente le nom abrégé du jour actuel. Le %p représente le matin ou l'après-midi, dans votre région. En anglais, cela se traduit par AM ou PM .

Connexes : Comment fonctionne la méthode Python String format() ?

Vous pouvez jeter un œil à toutes les annotations de chaîne possibles pour strftime() dans la documentation Python pendant votre temps libre. N'hésitez pas à les modifier à votre guise, pour formater une heure selon vos besoins spécifiques. Vous pouvez expérimenter en ajoutant plus d'options de chaîne à l'exemple ci-dessus et en voyant ce qu'elles génèrent. Par exemple, vous pouvez remplacer %I par %H pour obtenir un format 24 heures de l'heure actuelle à la place.

Programmer le code avec le module de temps de Python

Vous pouvez retarder l'exécution du code à l'aide de la fonction time.sleep() . Cette fonction peut être utile lorsque vous devez planifier des requêtes ou exécuter un programme multithread à l'aide de Python.

Voyons voir comment ça fonctionne:

 import time
time.sleep(3)
print("This post will show after 3 seconds")

Notez que time.sleep() n'accepte que les arguments flottants et entiers, qu'il traduit en secondes. Donc, si vous planifiez pour l'heure ou la minute suivante, vous devrez les convertir en secondes.

Pour retarder la sortie d'une heure, par exemple :

 time.sleep(3600)
print("This post will show after an hour")

Créer un compte à rebours en utilisant time.sleep()

Utilisation de la fonction time.sleep() et de Python pour loop , créons un compte à rebours qui accepte l'entrée d'un utilisateur :

 import time
print("Start counting seconds from:")

# Create a timer input field that accepts an integer
timer = int(input())

# Increment the timer so that it starts at the specified input
timer = range(timer + 1)

# Assign the length of the timer to a new variable =>
# Then remove one from timer's length to match its index

v = len(timer) - 1

for i in timer:
# Increment the time every one second
time.sleep(1)

# Concatenate the previous count with the next count
# to prevent new line at each iteration
print(timer[v], end = " ", flush=True)
print("", end = "", flush=True)

# Decrease the length of timer input by one for each iteration
v -= 1

Lorsque vous exécutez le code ci-dessus et définissez votre valeur de temps, il diminue la valeur spécifiée chaque seconde jusqu'à ce qu'elle atteigne zéro.

Faire un bon usage de la bibliothèque de temps de Python

Vous savez maintenant comment accéder à l'heure actuelle à partir de votre code Python et manipuler la sortie de l'heure et de la date. Le module de temps est également un outil précieux pour suivre les demandes côté serveur lorsque vous utilisez Python pour la programmation backend.

Et parce que les sorties sont pour la plupart des nombres entiers ou des flottants, vous pouvez les utiliser comme vous le souhaitez pour obtenir votre temps en heures, jours, mois ou années.