파이썬 datetime | 시간 변환
이번 포스팅에서는 다음과 같이, 파이썬 datetime
모듈을 이용해 시간 데이터를 원하는 형식 혹은 타입으로 변환하는 방법을 알아봅니다.
- 시간을 분 초로 변환
- 시간을 Unix 타임스탬프 int 숫자로 변환
- UTC 시간으로 변환
- 데이터프레임에서 시간으로 변환
- 문자열로 변환
1. 시간을 초로 변환하기
우선, 시간 데이터를 초로 변환하는 방법입니다.
datetime
객체로 표현한 시간을 초로 변환하려면 timedelta
객체의 total_seconds()
메소드를 사용할 수 있습니다.
아래 코드 예제를 보겠습니다.
from datetime import datetime, timedelta
# datetime 객체 생성
dt = datetime(2023, 7, 7, 12, 0, 0)
# timedelta 객체 생성
delta = dt - datetime(2023, 7, 7, 0, 0, 0)
# 총 초로 변환
seconds = delta.total_seconds()
print(f"총 초: {seconds}")
2. 시간을 분으로 변환하기
마찬가지로, 시간을 분으로 변환하려면 total_seconds()
메소드의 결과를 60
으로 나눕니다.
minutes = seconds / 60
print(f"총 분: {minutes}")
3. datetime
을 int 숫자인 Unix 타임스탬프로 변환하기
datetime
객체를 숫자, 그 중 int 타입으로 변환하는 가장 간단한 기준은 Unix 타임스탬프입니다.
이렇게, datetime
객체를 Unix 시간으로 변환하려면 timestamp()
메소드를 사용하면 됩니다.
unix_time = dt.timestamp()
print(f"Unix 시간: {unix_time}")
4. UTC 시간으로 변환하기
UTC 시간은 대부분의 플랫폼에서 기본적인 단위 시간으로 사용됩니다.
datetime
객체를 UTC 시간으로 변환하려면, astimezone()
메소드와 pytz
라이브러리를 사용하면 됩니다.
pytz
라이브러리는 패키지 매니저를 통해 설치해야 합니다.
import pytz
utc_time = dt.astimezone(pytz.utc)
print(f"UTC 시간: {utc_time}")
5. 데이터프레임에서 시간 형식 변환하기
Pandas의 DataFrame에서 시간 형식을 변환하려면, pd.to_datetime()
함수를 사용하면 됩니다.
import pandas as pd
data = {'date_time': ['2023-07-07 10:30', '2023-07-08 11:45', '2023-07-09 12:50']}
df = pd.DataFrame(data)
# 문자열을 datetime 객체로 변환
df['date_time'] = pd.to_datetime(df['date_time'])
print(df)
6. datetime
을 문자열로 변환하기
strftime()
메소드를 사용하여 datetime
객체를 문자열로 변환할 수 있습니다.
date_str = dt.strftime("%Y-%m-%d %H:%M:%S")
print(f"날짜 문자열: {date_str}")
결론
Python의 datetime
모듈은 시간 변환 작업에 매우 효과적입니다.
이 포스트에서는 시간 변환에 datetime
모듈의 기능을 어떻게 활용할 수 있는지 알아보았습니다.
이러한 기능을 활용하면 시간 변환 작업을 더 쉽고 효율적으로 처리할 수 있습니다.