[python] dateutil의 parserinfo 클래스를 사용하여 날짜 구문 분석 로케일 설정

Python의 dateutil 라이브러리는 날짜 및 시간을 쉽게 처리할 수 있는 기능을 제공합니다. 이러한 기능 중 하나는 문자열로 표현된 날짜를 구문 분석하여 datetime 객체로 변환하는 것입니다.

dateutil.parser 모듈은 이러한 구문 분석 기능을 제공하는데, 이때 로케일을 지정하여 언어 및 지역에 따라 날짜를 읽을 수 있도록 할 수 있습니다.

날짜 구문 분석 시 로케일을 설정하기 위해 parserinfo 클래스를 사용할 수 있습니다. 이 클래스는 구문 분석에 사용될 언어 및 로케일 정보를 제공합니다.

다음은 parserinfo 클래스를 사용하여 로케일을 설정하는 예제 코드입니다.

from dateutil.parser import parse
from dateutil.parser._parser import parserinfo

class MyParserInfo(parserinfo):
    """
    나만의 로케일 설정 클래스
    """

    MONTHS = [("1월", "1"), ("2월", "2"), ("3월", "3"), ("4월", "4"), ("5월", "5"), ("6월", "6"), 
              ("7월", "7"), ("8월", "8"), ("9월", "9"), ("10월", "10"), ("11월", "11"), ("12월", "12")]
    WEEKDAYS = [("월요일", "월"), ("화요일", "화"), ("수요일", "수"), ("목요일", "목"), ("금요일", "금"), ("토요일", "토"), ("일요일", "일")]
    AMPM = [("오전", "AM"), ("오후", "PM")]

# 로케일 설정 클래스를 parserinfo로 지정하여 parse 함수를 호출합니다.
dt = parse("2022년 1월 1일 오후 3시", parserinfo=MyParserInfo())

print(dt)

위 코드는 “2022년 1월 1일 오후 3시”라는 문자열을 MyParserInfo 클래스를 사용하여 구문 분석하여 datetime 객체로 변환하는 예제입니다. MyParserInfo 클래스는 MONTHS, WEEKDAYS, AMPM 속성을 정의하여 월, 요일 및 AM/PM 표현을 한글로 설정하였습니다.

출력 결과는 다음과 같습니다.

2022-01-01 15:00:00

이처럼 dateutil의 parserinfo 클래스를 사용하여 날짜 구문 분석의 로케일을 설정하여 다양한 언어와 지역에 맞게 날짜를 처리할 수 있습니다.


참고 자료: