我目前有一个脚本,它会记录日期并从某个日期迭代到今天的日期。输出列出了当前日期之前的小时增量天数。
我试图弄清楚如何让循环停在2017-07-10 00:00:000或换句话说,当前日期的开始,之后没有列出小时。注意:有人提到while循环只是对逻辑有点困惑。
以下是我正在使用的代码:
sys_date = dt.datetime.today()#.strftime("%d-%m-%Y %H:%M:%S")
Last_RT = Audit_Log.RUN_TIME_END.max()
#Looping through every hr until current date
for r in arrow.Arrow.range('hour', Last_RT, sys_date):
print r.format("YYYY-MM-DD HH:mm:ss")
输出:
- 2017-07-09 00:00:00
- 2017-07-09 01:00:00
- 2017-07-09 02:00:00
- 2017-07-09 03:00:00
- 2017-07-09 04:00:00
- 2017-07-09 05:00:00
....................
- 2017-07-09 15:00:00
- 2017-07-09 16:00:00
- 2017-07-09 17:00:00
- 2017-07-09 18:00:00
- 2017-07-09 19:00:00
- 2017-07-09 20:00:00
- 2017-07-09 21:00:00
- 2017-07-09 22:00:00
- 2017-07-09 23:00:00
- 2017-07-10 00:00:00
- 2017-07-10 01:00:00
- 2017-07-10 02:00:00
答案 0 :(得分:1)
使用箭头中的floor方法
start = arrow.now().replace(days=-5).floor('day')
end = arrow.now().floor('day')
#Looping through every hr until current date
for r in arrow.Arrow.range('hour', start, end):
print r.format("YYYY-MM-DD HH:mm:ss")
这应该会给你一天的开始。
2017-07-05 00:00:00
2017-07-05 01:00:00
2017-07-05 02:00:00
...
2017-07-09 21:00:00
2017-07-09 22:00:00
2017-07-09 23:00:00
2017-07-10 00:00:00
修改强>
总的来说,我很少遇到需要arrow
和内置datetime
包的实例。我使用箭头,除非绝对有必要使用内置。