[python] 파이썬: timedelta을 초 단위 변환



convert timedelta to seconds


1. td / timedelta()


timedelta는 시간 또는 날짜 사이에 존재하는 차이의 시간 간격을 나타냅니다.

from datetime import timedelta

print("td days: {0}".format(timedelta(days=1)))
print("td hours: {0}".format(timedelta(hours=1)))
print("td seconds: {0}".format(timedelta(seconds=1)))
print("td microseconds: {0}".format(timedelta(microseconds=1)))

# 출력
# td days: 1 day, 0:00:00
# td hours: 1:00:00
# td seconds: 0:00:01
# td microseconds: 0:00:00.000001

timedelta를 사용해 2시간 30분을 표현하고 싶다면
from datetime import timedelta
print("td: {0}".format(timedelta(hours=2minutes=30)))

# 출력
# td: 2:30:00

timedelta를 seconds로 변형하려면 timedelta에서 지원하는 연산을 참고해야 합니다.
아래의 연산은 timedelta 값을 timedelta로 나누는 연산입니다. (return float)


연산에 명시된 설명을 보면 "전체 구간 t2 / 구간 단위 값 t3"을 나눠 return값으로 float을 지원합니다.
위의 연산을 참고하면 "전체 구간 / 단위"가 되는 것이니

td / timedelta(seconds=1)을 사용해 1시간을 초단위로 나눴습니다.
td = timedelta(hours=1)
print("td: {0}".format(td))
print("td / timedelta(seconds=1): {0}".format(td / timedelta(seconds=1)))

# 출력
# td: 1:00:00
# td / timedelta(seconds=1): 3600.0

만약 microseconds 단위로 나누고 싶다면
td = timedelta(hours=1)
print("td: {0}".format(td))
print("td / timedelta(microseconds=1): {0}".format(td / timedelta(microseconds=1)))

# 출력
# td: 1:00:00
# td / timedelta(seconds=1): 3600000000.0


2. total_seconds


total_seconds란 timedelta에 명시된 길이를 seconds로 변환합니다. (return float)

from datetime import timedelta

td = timedelta(hours=1)
print("td: {0}".format(td))
print("convert float using total_seconds: {0}".format(td.total_seconds()))

# 출력
# td: 1:00:00
# convert float using total_seconds: 3600.0

1시간을 seconds로 변환하여 초단위로 값을 반환합니다.
※ total_seconds는 seconds 단위 이외로는 변경할 수 없습니다.


참고문헌

[1] https://docs.python.org/3/library/datetime.html




댓글

이 블로그의 인기 게시물

[opencv-python] 이미지 크기조절(resize) 하는 법

[python] selenium close와 quit 차이점

[python]파이썬: csv reader header skip (첫번째 행 무시하기, 안읽기)