格式化小数点后的3位数

时间:2017-10-11 01:03:34

标签: python date datetime

我有很少的python代码来处理日期和时间,我需要提问来修改脚本。该脚本在下面提供,

from datetime import date, datetime, timedelta
import random


def perdelta(start, end, delta):
    curr = start
    while curr < end:
        yield curr
        curr += delta

s = datetime.now() - timedelta(days=10)
e = datetime.now() - timedelta(days=8)


# start =  2017-10-01 06:44:00.480208
# end =  2017-10-03 06:44:00.480583


# print "\n"
# print "start = ", s
# print "end = ", e
# print "\n"

dates = []

for result in perdelta(s, e, timedelta(seconds=15)):
    print result

当我打印出结果时,我得到像

这样的值
2017-10-03 06:49:50.009049
2017-10-03 06:50:05.009049

如何保持小数点后的3位数字2017-10-03 06:49:50.349

1 个答案:

答案 0 :(得分:1)

如果你只对字符串保持只对微秒的前三位数感兴趣,你可以使用字符串拼接。

for result in perdelta(s, e, timedelta(seconds=15)):
    print (str(result)[:-3])

一个更好的方法,就是ShadowRanger在评论中提到的方法,它使用.isoformat(...)直接格式化为ISO 8601,并附加毫秒时间规格。但不幸的是,timespec参数最近才在Python 3.6中添加。