[python] dateutil의 parser 모듈을 사용하여 시간대 문자열 파싱 및 타임존 객체 설정

Python에서 날짜와 시간을 다루는 작업을 할 때, 종종 시간대 정보를 포함한 문자열을 파싱하고 타임존 객체를 설정해야 할 필요가 있습니다. 이를 위해 dateutil 라이브러리의 parser 모듈을 사용할 수 있습니다.

dateutil 설치

먼저, dateutil 라이브러리를 설치해야 합니다. 아래의 명령을 사용하여 pip를 통해 설치할 수 있습니다.

pip install python-dateutil

시간대 문자열 파싱

dateutil.parser.parse() 함수를 사용하여 시간대 문자열을 파싱할 수 있습니다. 함수의 인자로 문자열을 전달하면, 해당 문자열을 날짜와 시간으로 파싱하여 datetime 객체로 반환합니다.

from dateutil import parser

date_string = '2022-01-01 10:00:00+09:00'
dt = parser.parse(date_string)
print(dt)

위의 예제에서는 2022-01-01 10:00:00+09:00라는 문자열을 parse() 함수에 전달하여 파싱하고, 그 결과를 datetime 객체인 dt에 저장한 뒤 출력합니다.

타임존 객체 설정

파싱된 datetime 객체를 이용하여 타임존 객체를 설정할 수 있습니다. pytz 라이브러리를 사용하여 타임존 객체를 생성하고, datetime 객체의 replace() 메서드를 사용하여 타임존을 변경할 수 있습니다.

from dateutil import parser
import pytz

date_string = '2022-01-01 10:00:00+09:00'
dt = parser.parse(date_string)
tz = pytz.timezone('Asia/Seoul')
dt_with_tz = dt.replace(tzinfo=tz)
print(dt_with_tz)

위의 예제에서는 Asia/Seoul 타임존을 나타내는 pytz.timezone() 함수를 사용하여 타임존 객체 tz를 생성합니다. 그 후, datetime 객체의 replace() 메서드를 사용하여 tzinfo 속성을 변경하고, 변경된 객체를 dt_with_tz에 저장하여 출력합니다.

정리

dateutilparser 모듈을 사용하면 시간대 문자열을 파싱하고 타임존 객체를 설정할 수 있습니다. 이를 통해 Python에서 날짜와 시간에 관련된 작업을 보다 쉽게 처리할 수 있습니다.

참고자료