一尘不染

将微秒格式化为两位小数(实际上是将微秒转换为数十微秒)

python

我正在使用以下内容打印时间戳:

strftime('%d-%m-%Y %H:%M:%S.%f')

但是我想将微秒四舍五入到小数点后两位,而不是打印出小数点后六位。有没有比所有时间元素“拆包”,将微秒格式化并将其四舍五入到小数点后两位以及格式化新的“打印字符串”更简单的方法了?


阅读 320

收藏
2021-01-20

共1个答案

一尘不染

decimal_places = 2
ndigits = decimal_places - 6
assert ndigits < 0
d = d.replace(microsecond=round(d.microsecond, ndigits))
print(d.strftime('%d-%m-%Y %H:%M:%S.%f')[:ndigits])
# -> 2014-10-27 11:59:53.87
2021-01-20