« Python date et heure » : différence entre les versions

De knowledge
Aller à la navigation Aller à la recherche
mAucun résumé des modifications
mAucun résumé des modifications
Ligne 7 : Ligne 7 :


=== Le module time ===
=== Le module time ===
==== epoch ====
<syntaxhighlight lang="python3">
<syntaxhighlight lang="python3">
import time
import time
Ligne 20 : Ligne 22 :
C'est un flottant donc sa précision est fonction de sa valeur. Elle est maximale autour de 1/1/1900 et est divisée par 10 pour chaque dizaine qui avance.
C'est un flottant donc sa précision est fonction de sa valeur. Elle est maximale autour de 1/1/1900 et est divisée par 10 pour chaque dizaine qui avance.


Ce sont des nombres binaires flottants [[Format de dates python|Format de dates]].
==== time.struct_time ====
On peut également traiter les dates sous forme d'objet :<syntaxhighlight lang="python3">
t1=time.gmtime()
print (t1)
t2=time.localtime()
print (t2)
 
 
</syntaxhighlight>nous donne (aujourd'hui ou j'écris  es lignes)<syntaxhighlight lang="text">
time.struct_time(tm_year=2025, tm_mon=9, tm_mday=24, tm_hour=21, tm_min=12, tm_sec=4, tm_wday=2, tm_yday=267, tm_isdst=0)
time.struct_time(tm_year=2025, tm_mon=9, tm_mday=24, tm_hour=23, tm_min=12, tm_sec=5, tm_wday=2, tm_yday=267, tm_isdst=1)
</syntaxhighlight>c'est plus facile pour les afficher ou les créer mais pour faire des opérations arithmétiques (ajouter un jour, retirer une semaine.... c'est complexe)
 
Pour faire ce genre de calculs on dispose de fonctions de conversions.<syntaxhighlight lang="python3">
import time
ts=time.time()
td=time.localtime(ts)
tsbis=time.mktime(td)
 
print (ts)
print (td)
print (tsbis)
</syntaxhighlight>Imprime<syntaxhighlight lang="text">
1758749090.0256174
time.struct_time(tm_year=2025, tm_mon=9, tm_mday=24, tm_hour=23, tm_min=24, tm_sec=50, tm_wday=2, tm_yday=267, tm_isdst=1)
1758749090.0
</syntaxhighlight>On est revenu a une précision a la seconde. C'est normal <code>time.struc_time</code> ne stocke pas les valeurs au delà. On perd  les fractions de secondes à <code>td=time.localtime(ts)</code>.
 
 
 
[[Format de dates python|Format de dates]].

Version du 24 septembre 2025 à 21:36

Python sait tres bien gérer les dates et les heures.

Gérer les epoch

Pour gérer les dates linux, unix et les autres utilisent un compteur (souvent entier) comptant les intervalles de temps (secondes, ms, µs...) depuis une date donnée. Les nombres négatifs sont les dates avant cette date et les positifs après.

Cette page décrit le codage du temps par les ordinateurs, nous n'y revenons pas.

Le module time

epoch

import time
t=time.time()
print (t)

Nous donne :

1758746873,0143945

qui est le nombre de secondes écoulées depuis le 1/1/1900 à 0:00 UTC

C'est un flottant donc sa précision est fonction de sa valeur. Elle est maximale autour de 1/1/1900 et est divisée par 10 pour chaque dizaine qui avance.

time.struct_time

On peut également traiter les dates sous forme d'objet :

t1=time.gmtime()
print (t1)
t2=time.localtime()
print (t2)

nous donne (aujourd'hui ou j'écris es lignes)

time.struct_time(tm_year=2025, tm_mon=9, tm_mday=24, tm_hour=21, tm_min=12, tm_sec=4, tm_wday=2, tm_yday=267, tm_isdst=0)
time.struct_time(tm_year=2025, tm_mon=9, tm_mday=24, tm_hour=23, tm_min=12, tm_sec=5, tm_wday=2, tm_yday=267, tm_isdst=1)

c'est plus facile pour les afficher ou les créer mais pour faire des opérations arithmétiques (ajouter un jour, retirer une semaine.... c'est complexe) Pour faire ce genre de calculs on dispose de fonctions de conversions.

import time
ts=time.time()
td=time.localtime(ts)
tsbis=time.mktime(td)

print (ts)
print (td)
print (tsbis)

Imprime

1758749090.0256174
time.struct_time(tm_year=2025, tm_mon=9, tm_mday=24, tm_hour=23, tm_min=24, tm_sec=50, tm_wday=2, tm_yday=267, tm_isdst=1)
1758749090.0

On est revenu a une précision a la seconde. C'est normal time.struc_time ne stocke pas les valeurs au delà. On perd les fractions de secondes à td=time.localtime(ts).


Format de dates.