我有一个日期时间对象,它打印有:
from datetime import datetime
ts = datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f").strip()
print('TS: {}'.format(ts))
# "2020-12-03 02:13:27.823467"
但是,我只想显示毫秒的前两位数字,如下所示:2020-12-03 02:13:27.82
。使用";CCD_ 2";没有工作,也许还有另一个时间功能更合适?
在不引入(可能滞后(regex字符串操作的情况下,最好的方法是什么
下面的内容怎么样?
import datetime
now = datetime.datetime.now()
ts = now.strftime('%Y-%m-%d %H:%M:%S') + '.{:02d}'.format(round(now.microsecond, -4))[:3]
print('TS: {}'.format(ts))
# TS: 2020-12-03 01:22:01.86
编辑
也许一个更好的参数化解决方案是:
import datetime
def largest_digits(value, num_digits=2, max_digits=6):
discard_digits = num_digits - max_digits
base = 10 ** -discard_digits
return f'{round(value, discard_digits) // base:02d}'
now = datetime.datetime.now()
ts = now.strftime('%Y-%m-%d %H:%M:%S') + '.' + largest_digits(now.microsecond, 2)
print('TS: {}'.format(ts))
# TS: 2020-12-03 01:22:01.86
Aaahi,答案微不足道!使用字符串选择。
ts = datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f").strip()[:-4]