[python] pytz를 사용하여 특정 시간대의 모든 공휴일 가져오기

파이썬에서 pytz 라이브러리를 사용하여 특정 시간대에 해당하는 모든 공휴일을 가져오는 방법에 대해 알아보겠습니다.

1. pytz 라이브러리 설치하기

먼저, pytz 라이브러리를 설치해야 합니다. 다음 명령어를 사용하여 설치합니다.

pip install pytz

2. 특정 시간대의 공휴일 가져오는 함수 만들기

다음은 특정 시간대의 공휴일을 가져오는 함수를 정의하는 예제입니다.

import pytz
from datetime import date
from pandas.tseries.holiday import AbstractHolidayCalendar
from pandas.tseries.holiday import Holiday, USChristmas, USNewYear, USThanksgivingDay

class CustomHolidayCalendar(AbstractHolidayCalendar):
    rules = [
        Holiday('Custom Holiday 1', month=1, day=1),
        Holiday('Custom Holiday 2', month=7, day=4),
        USChristmas,
        USNewYear,
        USThanksgivingDay
    ]

def get_holidays(timezone):
    holidays = CustomHolidayCalendar().holidays(date.today(), date.today() + timedelta(days=365))
    holidays = holidays.tz_convert(timezone)
    return holidays

위의 코드에서는 CustomHolidayCalendar 클래스를 정의하고, rules에 공휴일을 정의합니다. 이 예제에서는 Custom Holiday 1Custom Holiday 2는 사용자 정의한 공휴일이며, USChristmas, USNewYear, USThanksgivingDay는 미국의 공휴일입니다.

get_holidays 함수는 특정 시간대를 매개변수로 받아 해당 시간대에 해당하는 공휴일을 가져오는 역할을 합니다. 공휴일은 현재 날짜부터 1년 후까지의 기간 동안의 공휴일을 가져옵니다.

3. 사용 예제

위에서 정의한 함수를 사용하여 특정 시간대의 공휴일을 가져와보는 예제를 살펴보겠습니다.

import pytz

timezone = pytz.timezone('America/New_York')
holidays = get_holidays(timezone)

for holiday in holidays:
    print(holiday)

위의 코드에서는 ‘America/New_York’ 시간대에 해당하는 공휴일을 가져옵니다. 가져온 공휴일은 반복문을 통해 출력됩니다.

4. 결론

pytz 라이브러리를 사용하여 특정 시간대의 공휴일을 가져오는 방법에 대해 알아보았습니다. 이를 통해 원하는 시간대에 해당하는 공휴일을 쉽게 가져와 활용할 수 있습니다.