Pour utiliser l'horodatage en JavaScript, nous utilisons
var ts = new Date().getTime()
Quelle est la bonne façon de le convertir en Python datetime
jusqu'à présent, j'utilise le code suivant
>>> jsts = 1335205804950
>>> dt = datetime.datetime.fromtimestamp(jsts/1000)
>>> dt
datetime.datetime(2012, 4, 24, 0, 30, 4)
Je divise l'horodatage par 1000 car j'obtiens une erreur comme
ValueError Traceback (most recent call last)
1 d = datetime.datetime.fromtimestamp(a)
ValueError: year is out of range
Sultan.
Votre méthode actuelle est correcte, la division par 1000 est nécessaire car votre JavaScript renvoie l'horodatage en millisecondes et que datetime.datetime.fromtimestamp()
attend un horodatage en secondes.
Pour préserver la précision à la milliseconde, vous pouvez diviser par 1000.0
. Vous utilisez donc la division float au lieu de la division entière:
>>> dt = datetime.datetime.fromtimestamp(jsts/1000.0)
>>> dt
datetime.datetime(2012, 4, 23, 11, 30, 4, 950000)
La façon dont vous le faites est la bonne façon, car js inclut des millisecondes dans la date/heure. Python (et PHP), autant que je sache, ne .. .. Pour plus de précision, vous pouvez utiliser /1000.0
.
Pour d’autres encore, une erreur se présentait: j’avais un problème similaire, mais l’horodatage unix était en microsecondes, c’est-à-dire que je devais diviser l’horodatage par 1000000 pour obtenir le résultat correct.
dt = datetime.datetime.fromtimestamp(1502360499615921)