J'ai besoin d'un seul horodatage de millisecondes (ms) depuis Epoch. Cela ne devrait pas être difficile, je suis sûr qu'il me manque juste une méthode de datetime
ou quelque chose de similaire.
En fait, la granularité en microsecondes (µs) est également très bien. J'ai juste besoin d'un timing inférieur à 1/10 de seconde.
Exemple. J'ai un événement qui se produit toutes les 750 ms, disons qu'il vérifie si une lumière est allumée ou éteinte. Je dois enregistrer chaque contrôle et résultat et le réviser plus tard, donc mon journal doit ressembler à ceci:
...00250 Light is on
...01000 Light is off
...01750 Light is on
...02500 Light is on
Si je n'ai qu'une seconde granularité complète, mon journal ressemblerait à ceci:
...00 Light is on
...01 Light is off
...01 Light is on
...02 Light is on
Pas assez précis.
import time
time.time() * 1000
où 1000 est des millisecondes par seconde. Si tout ce que vous voulez, c'est des centièmes de seconde depuis l'Époque, multipliez par 100.
En Python, datetime.now()
peut produire une valeur avec plus de précision que time.time()
:
from datetime import datetime, timezone, timedelta
now = datetime.now(timezone.utc)
Epoch = datetime(1970, 1, 1, tzinfo=timezone.utc) # use POSIX Epoch
posix_timestamp_micros = (now - Epoch) // timedelta(microseconds=1)
posix_timestamp_millis = posix_timestamp_micros // 1000 # or `/ 1e3` for float
En théorie, time.gmtime(0)
(l'époque utilisée par time.time()
) peut être différente de 1970
.