我正在尝试以低于.1秒的精度生成日期时间字符串,格式为:
201606041552015
我有以下内容:
from datetime import datetime
d = datetime.utcnow()
format1 = "%Y%m%d%H%M%S%f"
print (d.strftime(format1))
这会产生:
20160604154133634000
有没有办法将格式设置为1/10秒?
答案 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]