이 시도 :
start_date = datetime.now()
end_date = start_date + relativedelta(days=1)
end_date = end_date.replace(hour=19, minute=0, second=0, microsecond=0)
date_range(start_date, end_date, 8, 'hours')
:
는
from datetime import datetime
from dateutil.relativedelta import relativedelta
def date_range(start_date, end_date, increment, period):
result = []
nxt = start_date
delta = relativedelta(**{period:increment})
while nxt <= end_date:
result.append(nxt)
nxt += delta
return result
질문에 예, "지금과 내일 19시 사이의 8 시간마다"은 다음과 같이 기록 될 것입니다
period
의 유효한 값은 relativedelta
에 대해 정의 된 값인 'years', 'months', 'weeks', 'days', 'hours', 'minutes', 'seconds', 'microseconds'
입니다.
내 솔루션은 질문에 따라 목록을 반환합니다. @MartijnPieters가 대답하는 것처럼 모든 요소를 한 번에 필요로하지 않으면 생성기를 사용할 수 있습니다.
파이썬은 '범위'에 날짜를 허용해야합니다. 그것은 단지 의미가 있습니다. 그 이유는 그것이 약한 타입의 ... –
@TylerCrompton : "암시 적보다 낫다." 범위에서 증가 할 수있는 것은 일, 초, 마이크로 초, 밀리 초, 분, 시간 또는 주입니까? –
@NoctisSkytower 단계 값은 'timedelta'객체입니다. –