我有很少的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
?
答案 0 :(得分:1)
如果你只对字符串保持只对微秒的前三位数感兴趣,你可以使用字符串拼接。
for result in perdelta(s, e, timedelta(seconds=15)):
print (str(result)[:-3])
一个更好的方法,就是ShadowRanger在评论中提到的方法,它使用.isoformat(...)
直接格式化为ISO 8601,并附加毫秒时间规格。但不幸的是,timespec
参数最近才在Python 3.6中添加。