Python: datetime.time
datetime.time
datetime.timeclass는 그저, ’시간’만을 표시하는 class입니다. 날짜나 요일등은 전혀 중요하지 않고 그냥 시간만이 중요할 때 쓰는 class죠.- 다음 코드에서와 같이, time object을 정의하고 사용할 수 있습니다.
import datetime
t1 = datetime.time(hour=3, minute=10, second=24, microsecond=10)
print(t1) # 03:10:24.000010
- 또한,
datetime.datetime()object로부터,datetime.time()만을 따로 떼어서 가져오는 것도 가능해요. - 이는 다시 말해서,
datetime.datetime()이라는 개체가,datetime.date()와datetime.time()이라는 두 클래스의 합으로 구성되어 있다는 이야기이기도 합니다. 물론, 몰라도 됩니다. 보통 그냥datetime.datetime()만을 사용하게 되니까요.
import datetime
now_time = datetime.datetime.now().time()
print(now_time) # 14:36:54.165709
print(type(now_time)) # <class 'datetime.time'>
supported operation only for comparison
datetime.timeclass는 단지, 크고 작은 비교 연산 밖에 지원하지 않습니다. 현재 시각에서 일정 시간이 경과된 시간을 찾고 싶다면, 그 값을 연산하여 새로운datetime.time()객체를 만들어줘야 하죠.
import datetime
time1 = datetime.time(hour=3, minute=10, second=20)
time2 = datetime.time(hour=3, minute=30, second=20)
# TypeError: unsupported operand type(s) for -: 'datetime.time' and 'datetime.time'
print(time1 - time2)
datetime.time formatting
datetime.time을 원하는 형식대로 출력해주기 위해서는.strftime()메소드를 사용합니다.
format_type1 = "%H:%M:%S"
format_type2 = "%I:%M:%S %p"
print( now_time.strftime(format_type1) )
print( now_time.strftime(format_type2) )
22:24:34
10:24:34 PM
wrap-up
datetime.time()을 정리하기는 했지만, 냉정히 말해서 별로 쓸 일은 없습니다. 기본적인 연산을 지원하지 않기 때문이죠.
GitHub에서 이 글의 마크다운 원본 보기 & 수정 제안src/content/posts/2020-08-05-python_lib_datetime_time