2015-05-07 22 views
3

我想输出:格式秒浮法

"14:48:06.743174" 

这是最接近我可以得到:

`"14:48:06"` 

有:

t = time.time() 
time.strftime("%H:%M:%S",time.gmtime(t)) 

回答

8

按照manual on time有没有直接打印微秒(或浮点秒)的方式:

>>> time.strftime("%H:%M:%S.%f",time.gmtime(t)) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ValueError: Invalid format string 

然而datetime.datetime format提供%f其被定义为:

微秒为十进制数[0,999999],零填充左侧

>>> import datetime 
>>> datetime.datetime.now().strftime('%H:%M:%S.%f') 
'14:07:11.286000' 

或者当你有您的值存储在t = time.time()中,您可以使用datetime.datetime.utcfromtimestam()

>>> datetime.datetime.utcfromtimestamp(t).strftime('%H:%M:%S.%f') 
'12:08:32.463000' 

我怕,如果你想有more control over how microseconds get formatted(例如显示只有3个名额,而不是6),你将不得不裁剪(使用[:-3])文字:

>>> datetime.datetime.utcfromtimestamp(t).strftime('%H:%M:%S.%f')[:-3] 
'12:08:32.463' 

或用手将其格式化:

>>> '.{:03}'.format(int(dt.microsecond/1000)) 
'.463'