[python] pytz를 사용하여 시간대와 문자열 간의 변환하기

일반적으로 시간대는 협정 세계시(UTC)를 기준으로 표현되지만, 다른 시간대에 있는 시간을 다룰 때는 시간대 정보가 필요합니다. 파이썬에서는 pytz 라이브러리를 사용하여 시간대와 문자열 간의 변환을 쉽게 할 수 있습니다.

설치

pytz 라이브러리를 설치하려면 다음 명령을 사용하세요.

pip install pytz

시간대별 시간 가져오기

다음은 특정 시간대의 현재 시간을 얻는 방법입니다.

import datetime
import pytz

# 현재 시간을 얻기 위해 datetime.now()를 사용하고, 시간대로 변환하기 위해 pytz.timezone()을 사용합니다.
now = datetime.datetime.now(pytz.timezone('Asia/Seoul'))

print(now)

위의 예제에서 ‘Asia/Seoul’은 서울의 시간대를 나타내며, datetime.now()는 시간대를 지정하지 않으면 기본적으로 시스템의 시간대를 사용합니다.

출력 결과는 현재 시간대에 따라 다르게 표시됩니다.

시간대별 문자열 변환하기

다음은 시간대별로 날짜와 시간을 문자열로 변환하는 방법입니다.

import datetime
import pytz

# 현재 시간을 얻기 위해 datetime.now()를 사용하고, 시간대로 변환하기 위해 pytz.timezone()을 사용합니다.
now = datetime.datetime.now(pytz.timezone('Asia/Seoul'))

# strftime() 함수를 사용하여 날짜와 시간을 원하는 형식의 문자열로 변환합니다.
formatted_time = now.strftime("%Y-%m-%d %H:%M:%S")

print(formatted_time)

위의 예제에서는 strftime() 함수를 사용하여 현재 날짜와 시간을 “%Y-%m-%d %H:%M:%S” 형식의 문자열로 변환합니다.

출력 결과는 현재 시간대에 따라 다르게 표시됩니다.

문자열을 시간대로 변환하기

시간대 정보를 포함한 문자열을 파싱하여 시간대에 따라 datetime 객체로 변환할 수도 있습니다.

import datetime
import pytz

# 문자열을 `datetime` 객체로 변환하기 위해 `strptime()` 함수를 사용합니다.
datetime_str = "2022-01-01 12:00:00"
datetime_obj = datetime.datetime.strptime(datetime_str, "%Y-%m-%d %H:%M:%S")

# 시간대로 변환하기 위해 `pytz.timezone()` 함수를 사용합니다.
seoul_timezone = pytz.timezone('Asia/Seoul')
localized_datetime = seoul_timezone.localize(datetime_obj)

print(localized_datetime)

위의 예제에서는 strptime() 함수를 사용하여 “2022-01-01 12:00:00” 형식의 문자열을 datetime 객체로 변환합니다. 그리고 localize() 함수를 사용하여 해당 시간을 서울 시간대로 변환합니다.

출력 결과는 문자열을 변환한 시간대에 따라 다르게 표시됩니다.

pytz 라이브러리를 사용하여 시간대와 문자열 간의 변환을 쉽게 할 수 있습니다. 아래의 참고 자료를 확인하여 더 자세한 내용을 알아보세요.

참고 자료