web-dev-qa-db-fra.com

Horodatage JavaScript en conversion de date/heure Python

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.

35
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)
57
Andrew Clark

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.

1
jadkik94

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)
0
Juuso Nykänen