2017-07-11 144 views
2

我目前有一個腳本,它需要一個日期並從某個日期迭代到今天的日期。輸出以小時爲單位列出日期,直到當前日期。Python while循環日期迭代

我想弄清楚如何讓循環停止在2017-07-10 00:00:00或換句話說,當前日期的開始,沒有小時後列出。注意:有人提到了一個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 

回答

1

使用地板方法箭頭

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包。我使用箭頭,除非絕對有必要使用內建。

+0

嘿亞當,非常感謝你的幫助。我是編程新手,因此很多時候我只是從我的線索中脫身。謝謝你介紹我的場地方法。以及箭頭和日期時間的其他技巧。非常感謝一個noob。 –

+0

一切都很好。只要將問題標記爲回答:)點總是很好! – Adam

+0

@victoAguilar所以我的回答是你正在尋找的那個? – Adam