将秒格式设置为float

时间:2015-05-07 12:00:57

标签: python

我希望输出:

"14:48:06.743174"

这是我能得到的最接近的:

`"14:48:06"` 

使用:

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

1 个答案:

答案 0 :(得分:9)

根据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'