@Cabbi a soulevé la question que sur certains systèmes (Windows avec Python 2.7 ), le format microsecondes %f
peut donner à tort "0"
Il n'est donc pas possible de se contenter de couper les trois derniers caractères. De tels systèmes ne suivent pas le comportement spécifié par la directive la documentation :
Directive
Signification
Exemple
%f
Microseconde sous forme de nombre décimal, complété par un zéro à 6 chiffres.
000000, 000001, , 999999
Le code suivant formate soigneusement un timestamp en millisecondes :
>>> from datetime import datetime
>>> (dt, micro) = datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S.%f').split('.')
>>> "%s.%03d" % (dt, int(micro) / 1000)
'2016-02-26 04:37:53.133'
Pour obtenir le résultat exact souhaité par l'OP, nous devons supprimer les caractères de ponctuation :
>>> from datetime import datetime
>>> (dt, micro) = datetime.utcnow().strftime('%Y%m%d%H%M%S.%f').split('.')
>>> "%s%03d" % (dt, int(micro) / 1000)
'20160226043839901'
1 votes
stackoverflow.com/questions/311627/
4 votes
Veuillez rédiger un titre décrivant votre problème et essayez de poser une question claire et précise.
2 votes
Il convient de mentionner ici qu'une précision supplémentaire est souvent très utile. Par exemple, la fonction
Instant.parse
peut analyser les représentations créées avecstrftime('%Y-%m-%dT%H:%M:%S.%fZ')