【问题标题】:Not working Python miliseconds time不工作 Python 毫秒时间
【发布时间】:2013-06-20 09:44:06
【问题描述】:

我已阅读 Stackoverflow 中的所有帖子,python 文档中有关“时间”的文档,但没有找到如何制作浮动时间。

 import time
 time.strftime('%H:%M:%S.%f', time.gmtime(60.5))

返回 00:01:00.%f

我想要 00:01:00.500

我找不到类似的问题。

最终解决方案是:

 datetime.datetime.utcfromtimestamp(60.5).strftime('%H:%M:%S')+'.'+str(int(int(datetime.datetime.utcfromtimestamp(60.5).strftime('%f'))/1000))

【问题讨论】:

  • 您确定您已阅读 Stackoverflow 中的所有帖子吗? :-)

标签: python datetime time floating-point format


【解决方案1】:

time 模块不支持%f 毫秒格式化程序,因为time.struct_time tuple 不支持毫秒。

datetime 模块确实支持毫秒。请改用该模块:

import datetime

datetime.datetime.utcfromtimestamp(60.5).strftime('%H:%M:%S.%f')

演示:

>>> datetime.datetime.utcfromtimestamp(60.5).strftime('%H:%M:%S.%f')
'00:01:00.500000'

【讨论】:

  • 如何实现毫秒,而不是微秒(ms/1000)(也许这里存在任何格式文字)?
  • @xercool:没有其他格式文字; datetime 对象将亚秒信息存储为毫秒,您只能使用%f 格式化程序来显示这些信息。您必须自己提取该信息并采用不同的格式。
【解决方案2】:

其实%f是微秒:

from datetime import datetime 
'{:%H:%M:%S.%f}'.format(datetime.utcfromtimestamp(60.5))

返回

00:01:00.500000

【讨论】:

  • 但是time.strftime() 格式不支持它,只有datetime.datetime.strftime()(以及扩展名format())。
  • 您可以使用format(datetime.utcfromtimestamp(60.5), '%H:%M:%S.%f') 并放弃其余的字符串模板。
  • 只使用datetime.utcfromtimestamp(60.5).strftime('%H:%M:%S.%f'),因为这是datetime.__format__() 无论如何调用的。
  • 如何实现毫秒(不是微秒)?
猜你喜欢
  • 2010-12-26
  • 2013-08-06
  • 2017-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-20
  • 2012-02-12
相关资源
最近更新 更多