« Python date et heure » : différence entre les versions
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. | ||
==== 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).