Estou tentando usar strftime () com precisão de microssegundos, o que parece possível usando% f (conforme declarado aqui ). No entanto, quando tento o seguinte código:
import time
import strftime from time
print strftime("%H:%M:%S.%f")
... Recebo a hora, os minutos e os segundos, mas% f imprime como% f, sem sinal de microssegundos. Estou executando o Python 2.6.5 no Ubuntu, então deve funcionar e% f deve ser compatível (é compatível com 2.6 e superior, pelo que eu sei).
%z
datetime
suporta a%z
diretiva enquanto o tempo não parece .%z
com Python 3 :-) aqui está datetime e depois timefrom datetime import datetime
. Se você apenas fizerimport datetime
isso, você terá que usardatetime.datetime.now().strftime("%H:%M:%S.%f")
Você está vendo a documentação errada. O
time
módulo possui documentação diferente .Você pode usar o
datetime
módulostrftime
assim:fonte
Com o
time
módulo do Python você não pode obter microssegundos%f
.Para aqueles que ainda desejam usar
time
apenas o módulo, aqui está uma solução alternativa:Você deve obter algo como 2017-01-16 16: 42: 34.625 EET (sim, eu uso milissegundos, pois é o suficiente).
Para dividir o código em detalhes, cole o código abaixo em um console Python:
Para fins de esclarecimento, também colo meu resultado do Python 2.7.12 aqui:
fonte
Isso deve fazer o trabalho
Vai imprimir
HH:MM:SS.microseconds
assim por exemplo14:38:19.425961
fonte
Você também pode obter precisão de microssegundos do
time
módulo usando suatime()
função.(
time.time()
retorna o tempo em segundos desde a época. Sua parte fracionária é o tempo em microssegundos, que é o que você deseja.)fonte
Quando o "% f" para microssegundos não estiver funcionando, use o seguinte método:
fonte
Se você quiser velocidade, tente isto:
Onde
prec
está a precisão - quantas casas decimais você deseja. Observe que a função não tem problemas com zeros à esquerda na parte fracionária como algumas outras soluções apresentadas aqui.fonte
Se você quiser um número inteiro, tente este código:
Resultado:
fonte