我希望输出:
"14:48:06.743174"
这是我能得到的最接近的:
`"14:48:06"`
使用:
t = time.time()
time.strftime("%H:%M:%S",time.gmtime(t))
答案 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'