developer tip

파이썬 시간 + 동등한 timedelta

optionbox 2020. 11. 1. 17:38
반응형

파이썬 시간 + 동등한 timedelta


나는 다음과 같은 것을 시도하고 있습니다.

time() + timedelta(hours=1)

그러나 파이썬은 그것을 허용하지 않습니다 . 분명히 좋은 이유가 있습니다.

누구든지 간단한 해결 방법이 있습니까?

관련 :


솔루션은 질문에 제공 한 링크에 있습니다 .

datetime.combine(date.today(), time()) + timedelta(hours=1)

전체 예 :

from datetime import date, datetime, time, timedelta

dt = datetime.combine(date.today(), time(23, 55)) + timedelta(minutes=30)
print dt.time()

산출:

00:25:00

프로젝트에 다른 파일 / 종속성을 추가 할 가치가 있다면 datetime.time산술을 수행 할 수있는 기능을 확장하는 작은 클래스를 방금 작성했습니다 . 자정이 지나면 다음과 같이 둘러 쌉니다.

>>> from nptime import nptime
>>> from datetime import timedelta
>>> afternoon = nptime(12, 24) + timedelta(days=1, minutes=36)
>>> afternoon
nptime(13, 0)
>>> str(afternoon)
'13:00:00'

PyPi에서 nptime( "non-pedantic time") 또는 GitHub : https://github.com/tgs/nptime 에서 사용할 수 있습니다.

문서는 http://tgs.github.io/nptime/에 있습니다.


이것은 약간 불쾌하지만 :

from datetime import datetime, timedelta

now = datetime.now().time()
# Just use January the first, 2000
d1 = datetime(2000, 1, 1, now.hour, now.minute, now.second)
d2 = d1 + timedelta(hours=1, minutes=23)
print d2.time()

해결 방법 :

t = time()
t2 = time(t.hour+1, t.minute, t.second, t.microsecond)

그다지 정밀도가 필요하지 않은 경우 마이크로 초를 생략 할 수도 있습니다.


작동하도록 time ()을 now ()로 변경할 수 있습니다.

from datetime import datetime, timedelta
datetime.now() + timedelta(hours=1)

참고 URL : https://stackoverflow.com/questions/656297/python-time-timedelta-equivalent

반응형