153 votes

À l'aide de %f avec strftime() en Python pour obtenir microsecondes

Je suis en train d'utiliser strftime() à la microseconde de précision, ce qui semble possible à l'aide de %f (comme indiqué ici). Cependant quand j'ai essayer le code suivant:

import time
import strftime from time

print strftime("%H:%M:%S.%f")

...Je reçois l'heure, les minutes et les secondes, mais %f tirages %f, avec aucun signe de quelques microsecondes. Je suis en cours d'exécution Python 2.6.5 sur Ubuntu, donc il doit être fine et %f doit être pris en charge (il est pris en charge pour la 2.6 et au-dessus, pour autant que je sais.)

228voto

adamnfish Points 2444

Vous pouvez utiliser datetime de la fonction strftime de l'obtenir. Le problème est que le temps est strftime accepte un timetuple, qui ne portent pas la microseconde de l'information.

datetime.datetime.now().strftime("%H:%M:%S.%f")

Devrait faire l'affaire!

40voto

Jochen Ritzel Points 42916

Vous êtes à la recherche à la mauvaise documentation. L' time module dispose de différents documents.

Vous pouvez utiliser l' datetime module strftime comme ceci:

>>> from datetime import datetime
>>>
>>> now = datetime.now()
>>> now.strftime("%H:%M:%S.%f")
'12:19:40.948000'

7voto

salah Laaroussi Points 14

Cela devrait faire le travail

import datetime
datetime.datetime.now().strftime("%H:%M:%S.%f")

Il apparaîtra à l'impression

HH:MM:SS.microseconds comme cet e et.g 14:38:19.425961

5voto

Guanidene Points 1581

Vous pouvez également obtenir une précision de l' time module à l'aide de son time() fonction.
(time.time() retourne le temps en secondes depuis epoch. Sa partie fractionnaire est le temps en microsecondes, ce qui est ce que vous voulez.)

>>> from time import time
>>> time()
... 1310554308.287459   # the fractional part is what you want.


# comparision with strftime -
>>> from datetime import datetime
>>> from time import time
>>> datetime.now().strftime("%f"), time()
... ('287389', 1310554310.287459)

5voto

user2189872 Points 16

Lorsque le "%f" pour les micro-secondes ne fonctionne pas, veuillez utiliser la méthode suivante

import datetime

def getTimeStamp():
    dt = datetime.datetime.now()
    return dt.strftime("%Y%j%H%M%S") + str(dt.microsecond)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X