たれながし.info

とあるITエンジニアの備忘録

2025年のパッチチューズデーを計算する(Patch Tuesday)

はじめに

パッチチューズデーを計算するプログラムを以前作成しました。
それを使って2025年のパッチチューズデーを計算します。

tarenagashi.hatenablog.jp

計算してみる

パッチチューズデーの仕様

パッチチューズデーの仕様は以下の通りです。

  • パッチチュズデーは「米国太平洋標準時(UTC-8)の毎月第2火曜日の午前10時」
  • 日本時間(UTC+9)では「第2もしくは第3水曜日の午前2時もしくは午前3時」
  • 日本時間(UTC+9)で第2水曜日となるのか、第3水曜日となるのかはその月による
  • 日本時間(UTC+9)で午前2時となるのかは、アメリカがサマータイムなのかによる
  • 現地時間の「3月第2日曜日午前2時〜11月第1日曜日午前2時」がサマータイムでに当たり1時間早まる

プログラム

import datetime, calendar, pytz

def get_day_of_nth_dow(year, month, nth=2, dow=1):

    first_dow, n = calendar.monthrange(year, month)
    day = 7 * (nth - 1) + (dow - first_dow) % 7 + 1
    
    return day

if __name__ == '__main__':

    year=2025 # 2025年

    print('-' * 49)
    title = '|' + ' ' * 4 + '太平洋時間(PST)' + ' ' * 4 + \
            '|' + ' ' * 5 + '日本時間(JST)' + ' ' * 5 + '|'     
    print(title)
    print('-' * 49)

    for month in range(1, 13):

        # 第2火曜日の日付の取得
        day = get_day_of_nth_dow(year, month)
        naive_pst = datetime.datetime(year, month, day, 10)

        # 太平洋標準時(PST)の計算
        pst = pytz.timezone('US/Pacific')
        aware_pst = pst.localize(naive_pst)

        # 日本標準時(JST)の計算
        jst = pytz.timezone('Asia/Tokyo')
        aware_jst = aware_pst.astimezone(jst)

        print("| {} | {} |".format(aware_pst.strftime("%Y/%m/%d(%a) %H:%M"), aware_jst.strftime("%Y/%m/%d(%a) %H:%M")))
 
    print('-' * 49)

結果

-------------------------------------------------
|    太平洋時間(PST)    |     日本時間(JST)     |
-------------------------------------------------
| 2025/01/14(Tue) 10:00 | 2025/01/15(Wed) 03:00 |
| 2025/02/11(Tue) 10:00 | 2025/02/12(Wed) 03:00 |
| 2025/03/11(Tue) 10:00 | 2025/03/12(Wed) 02:00 |
| 2025/04/08(Tue) 10:00 | 2025/04/09(Wed) 02:00 |
| 2025/05/13(Tue) 10:00 | 2025/05/14(Wed) 02:00 |
| 2025/06/10(Tue) 10:00 | 2025/06/11(Wed) 02:00 |
| 2025/07/08(Tue) 10:00 | 2025/07/09(Wed) 02:00 |
| 2025/08/12(Tue) 10:00 | 2025/08/13(Wed) 02:00 |
| 2025/09/09(Tue) 10:00 | 2025/09/10(Wed) 02:00 |
| 2025/10/14(Tue) 10:00 | 2025/10/15(Wed) 02:00 |
| 2025/11/11(Tue) 10:00 | 2025/11/12(Wed) 03:00 |
| 2025/12/09(Tue) 10:00 | 2025/12/10(Wed) 03:00 |
-------------------------------------------------

まとめ

ということで、2025年のパッチチューズデーを計算しました。
日本では、初回は第3水曜日の1/15(水) 午前3時となります。