[python] pytz를 사용하여 특정 기간 동안의 평일만을 포함하는 날짜 범위를 구하는 방법은 무엇인가요?

먼저, datetime 모듈과 pytz 모듈을 import합니다:

from datetime import datetime, timedelta
import pytz

다음으로, 시작 날짜와 종료 날짜를 정의하고 로컬 시간대를 설정합니다:

start_date = datetime(2022, 1, 1)
end_date = datetime(2022, 1, 31)
local_tz = pytz.timezone('Asia/Seoul')

평일을 저장할 빈 리스트를 만듭니다:

weekdays = []

다음으로, 시작 날짜부터 종료 날짜까지 하루씩 증가하는 반복문을 만듭니다:

current_date = start_date
while current_date <= end_date:
    # 현재 날짜의 요일을 구합니다 (0: 월요일, 1: 화요일, ..., 6: 일요일)
    weekday = current_date.weekday()
    
    # 요일이 0부터 4까지인 경우 (월요일부터 금요일까지)만 평일로 간주합니다
    if weekday >= 0 and weekday <= 4:
        # 로컬 시간대로 변환 후 평일 리스트에 추가합니다
        weekdays.append(current_date.astimezone(local_tz))
    
    # 다음 날짜로 이동합니다
    current_date += timedelta(days=1)

마지막으로, 평일 리스트를 출력하거나 사용할 수 있습니다:

for weekday in weekdays:
    print(weekday.strftime('%Y-%m-%d %H:%M:%S %Z%z'))

이 예제 코드는 2022년 1월 1일부터 1월 31일까지의 평일 리스트를 생성합니다. 시작 날짜와 종료 날짜, 그리고 로컬 시간대는 필요에 맞게 변경하여 사용하십시오.

참고: pytz 모듈은 pip를 사용하여 설치할 수 있습니다:

pip install pytz