2015-05-07 21 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'