python datetime格式化为1/10秒

时间:2016-06-04 15:58:29

标签: python datetime

我正在尝试以低于.1秒的精度生成日期时间字符串,格式为:

 201606041552015

我有以下内容:

    from datetime import datetime
    d = datetime.utcnow()
    format1 = "%Y%m%d%H%M%S%f"
    print (d.strftime(format1))

这会产生:

20160604154133634000

有没有办法将格式设置为1/10秒?

3 个答案:

答案 0 :(得分:2)

假设日期为2016-06-04 23:59:59.999999。如果您希望将日期四舍五入为2016-06-05 00:00:00.0而不是截断为2016-06-04 23:59:59.9,那么您可以使用:

import datetime as DT

now = DT.datetime(2016,6,4,23,59,59,999999)
def myformat(date, digits=1):
    timestamp = round((date - DT.datetime(1970, 1, 1)).total_seconds(), 1)
    date = DT.datetime.utcfromtimestamp(timestamp)
    return str(date.strftime('%Y-%m-%d %H:%M:%S.%f'))[:-5]
print('{}\n{}'.format(now, myformat(now)))
# 2016-06-04 23:59:59.999999
# 2016-06-05 00:00:00.0

答案 1 :(得分:1)

只需删除当前格式的最后5位数字即可。我也像这样添加传统的占位符。

>>> d = datetime.utcnow()
>>> print (d.strftime('%Y-%m-%d %H:%M:%S.%f')[:-5])
2016-06-04 16:00:53.9

答案 2 :(得分:1)

要获得1/10秒的精确度,您需要删除最后5位

d.strftime(format1)[:-5]