2016-12-30 68 views
0

這可能是一個非常簡單的問題,但我花了很多時間來解決這個問題。我有這樣的代碼:在兩個輸入日期之間創建日期和時間列表

st_date=parser.parse(start_date) 
en_date=parser.parse(end_date) 

sel=[np.datetime64(st_date)+np.timedelta64(xx,'h') for xx in range(0,(diff.days*24+diff.seconds/3600))] 

這產生的日期和時間的列表,但時間開始時間爲當前時間,我想開始我的時間爲01:00,結束時間爲23: 00。

任何建議高度讚賞

+0

此代碼不完整。 –

回答

1

你可以截斷你的st_date以小時生成序列之前:

st_date = st_date.replace(minute=0, second=0, microsecond=0) 

舉例來說,如果你使用內置datetime模塊:

import datetime 

# initialize the start and end date 
st_date = datetime.datetime.now() 
en_date = st_date + datetime.timedelta(days = 2.2) 
diff = en_date - st_date 

# truncate the start date to hours 
st_date = st_date.replace(minute=0, second=0, microsecond=0) 

# generate sequence 
sel=[st_date + datetime.timedelta(hours = xx) for xx in range(0, diff.days*24 + diff.seconds/3600)] 

sel 

#[datetime.datetime(2016, 12, 29, 21, 0), 
# datetime.datetime(2016, 12, 29, 22, 0), 
# datetime.datetime(2016, 12, 29, 23, 0), 
# datetime.datetime(2016, 12, 30, 0, 0), 
# datetime.datetime(2016, 12, 30, 1, 0), 
# datetime.datetime(2016, 12, 30, 2, 0), 
# datetime.datetime(2016, 12, 30, 3, 0), 
# datetime.datetime(2016, 12, 30, 4, 0), 
# datetime.datetime(2016, 12, 30, 5, 0), 
# datetime.datetime(2016, 12, 30, 6, 0), 
# datetime.datetime(2016, 12, 30, 7, 0), 
# datetime.datetime(2016, 12, 30, 8, 0), 
# ...] 
相關問題