Skip to content

Instantly share code, notes, and snippets.

@YannBouyeron
Created January 22, 2018 19:43
Show Gist options
  • Save YannBouyeron/1083709633f78e6804602a7ac6ae4bfa to your computer and use it in GitHub Desktop.
Save YannBouyeron/1083709633f78e6804602a7ac6ae4bfa to your computer and use it in GitHub Desktop.

Utiliser le module Time de Python.

Importer le module Time.

import time

Le temps "timestamp" écoulé depuis l'Epoch Unix.

L'epoch unix est une date de reference (1er janvier 1970 à 00:00:00.). La fonction time() mesure le "timestamp" ou temps en secondes depuis cette référence.

>>> import time
>>> t = time.time()
>>> t
1458557173.523102

La date et heure locale.

La fonction localtime() renvoie la date et l'heure de votre méridien dans une tuple (liste non modifiable).

>>> import time
>>> t = time.localtime()
>>> t
time.struct_time(tm_year=2016, tm_mon=3, tm_mday=21, tm_hour=10, tm_min=48, tm_sec=0, tm_wday=0, tm_yday=81, tm_isdst=0)

Pour extraire seulement le jour de cette tuple::

>>> jour = t[2]
>>> jour
21

La date et heure du méridien de Greenwich.

Utilisez la fonction gmtime() qui fonctionne de la même façon que localtime().

Ici (à Dakar) il n'y a pas de différence entre l'heure locale et l'heure de référence de Greenwich.

Formater le temps avec strftime.

>>> import time
>>> t1 = time.strftime("%A %d %B %Y %H:%M:%S")
>>> t1
'Monday 21 March 2016 10:58:41'

>>> t2 = time.strftime("%H:%M:%S")
>>> t2
'10:59:12'

>>> t3 = time.strftime("%A %d %B %Y")
>>> t3
'Monday 21 March 2016'

Mesurer le temps écoulé.

On mesure ci-dessous le temps d'exécution de la boucle while. (C'est un exemple, on pourrait mesurer le temps d'exécution de n'importe quelle fonction)

import time

t0 = time.time()

x = 0
while x < 10000:
	x = x + 1
	
tf = time.time()
dt = tf-t0

Résultat:

>>> t0
1458558487.016829
>>> tf
1458558487.020353
>>> dt
0.0035240650177001953

L'exécution de la boucle a duré 0.0035240650177001953 secondes.

Mesurer le temps d'utilisation processeur ou temps CPU.

On mesure toujours le temps d'exécution de la boucle while, mais on utilise cette fois la fonction clock() qui est plus précise.

import time

t0 = time.clock()

x = 0
while x < 10000:
	x = x + 1
	
tf = time.clock()
dt = tf-t0

Résultats:

>>> t0
36.446733
>>> tf
36.456447
>>> dt
0.009713999999995337

Convertir un localtime ou gmtime en timestamp.

Il faut pour cela utiliser la fonction mktime()

>>> import time
>>> l = time.localtime()
>>> g = time.gmtime()

>>> l
time.struct_time(tm_year=2016, tm_mon=3, tm_mday=21, tm_hour=18, tm_min=16, tm_sec=50, tm_wday=0, tm_yday=81, tm_isdst=0)

>>> g
time.struct_time(tm_year=2016, tm_mon=3, tm_mday=21, tm_hour=18, tm_min=17, tm_sec=0, tm_wday=0, tm_yday=81, tm_isdst=0)

>>> time.mktime(l)
1458584210.0

>>> time.mktime(g)
1458584220.0

Présenter la date et l'heure sous forme d'une chaîne de caractères (str).

On utilise pour cela la fonction asctime().

>>> import time
>>> x = time.asctime()
>>> x
'Mon Mar 21 18:56:25 2016'
>>> type(x)
<type 'str'>

Ou en gmtime():

>>> import time
>>> g = time.gmtime()
>>> x = time.asctime(g)
>>> x
'Mon Mar 21 18:58:21 2016'

Convertir un temps présenté sous forme d'une chaîne de caractères en tuple struct_time.

On utilise pour cela la fonction strptime()

>>> import time
>>> x = time.asctime()
>>> x
'Tue Mar 22 14:37:23 2016'
>>> k = time.strptime(x)
>>> k
time.struct_time(tm_year=2016, tm_mon=3, tm_mday=22, tm_hour=14, tm_min=37, tm_sec=23, tm_wday=1, tm_yday=82, tm_isdst=-1)

Pour convertir juste l'heure:

>>> import time
>>> z = '12:32:45'
>>> j = time.strptime(z,'%H:%M:%S')
>>> j
time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=12, tm_min=32, tm_sec=45, tm_wday=0, tm_yday=1, tm_isdst=-1)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment