[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
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=2, minutes=30)))
# 출력
# td: 2:30:00
print("td: {0}".format(timedelta(hours=2, minutes=30)))
# 출력
# td: 2:30:00
timedelta를 seconds로 변형하려면 timedelta에서 지원하는 연산을 참고해야 합니다.
아래의 연산은 timedelta 값을 timedelta로 나누는 연산입니다. (return float)
아래의 연산은 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
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
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
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 단위 이외로는 변경할 수 없습니다.
댓글
댓글 쓰기