{"slug":"us-options-expiration-dates-beijing-time","qid":"monthly_2026","label":"monthly_2026","post_title":"us-options-expiration-dates-beijing-time","post_url":"/blog/lang/zh-hans/us-options-expiration-dates-beijing-time#q-monthly_2026","columns":["expiration_date","expiry_label","weekday","rule","shifted_to_thursday","et_cutoff","us_clock","beijing_cutoff","utc8_clock"],"rows":[{"expiration_date":"2026-01-16","expiry_label":"1 月 16 日","weekday":"周五","rule":"第三个周五","shifted_to_thursday":0,"et_cutoff":"16:00","us_clock":"EST 冬令时","beijing_cutoff":"01-17 周六 05:00","utc8_clock":5},{"expiration_date":"2026-02-20","expiry_label":"2 月 20 日","weekday":"周五","rule":"第三个周五","shifted_to_thursday":0,"et_cutoff":"16:00","us_clock":"EST 冬令时","beijing_cutoff":"02-21 周六 05:00","utc8_clock":5},{"expiration_date":"2026-03-20","expiry_label":"3 月 20 日","weekday":"周五","rule":"第三个周五","shifted_to_thursday":0,"et_cutoff":"16:00","us_clock":"EDT 夏令时","beijing_cutoff":"03-21 周六 04:00","utc8_clock":4},{"expiration_date":"2026-04-17","expiry_label":"4 月 17 日","weekday":"周五","rule":"第三个周五","shifted_to_thursday":0,"et_cutoff":"16:00","us_clock":"EDT 夏令时","beijing_cutoff":"04-18 周六 04:00","utc8_clock":4},{"expiration_date":"2026-05-15","expiry_label":"5 月 15 日","weekday":"周五","rule":"第三个周五","shifted_to_thursday":0,"et_cutoff":"16:00","us_clock":"EDT 夏令时","beijing_cutoff":"05-16 周六 04:00","utc8_clock":4},{"expiration_date":"2026-06-18","expiry_label":"6 月 18 日","weekday":"周四","rule":"周五休市，提前至周四","shifted_to_thursday":1,"et_cutoff":"16:00","us_clock":"EDT 夏令时","beijing_cutoff":"06-19 周五 04:00","utc8_clock":4},{"expiration_date":"2026-07-17","expiry_label":"7 月 17 日","weekday":"周五","rule":"第三个周五","shifted_to_thursday":0,"et_cutoff":"16:00","us_clock":"EDT 夏令时","beijing_cutoff":"07-18 周六 04:00","utc8_clock":4},{"expiration_date":"2026-08-21","expiry_label":"8 月 21 日","weekday":"周五","rule":"第三个周五","shifted_to_thursday":0,"et_cutoff":"16:00","us_clock":"EDT 夏令时","beijing_cutoff":"08-22 周六 04:00","utc8_clock":4},{"expiration_date":"2026-09-18","expiry_label":"9 月 18 日","weekday":"周五","rule":"第三个周五","shifted_to_thursday":0,"et_cutoff":"16:00","us_clock":"EDT 夏令时","beijing_cutoff":"09-19 周六 04:00","utc8_clock":4},{"expiration_date":"2026-10-16","expiry_label":"10 月 16 日","weekday":"周五","rule":"第三个周五","shifted_to_thursday":0,"et_cutoff":"16:00","us_clock":"EDT 夏令时","beijing_cutoff":"10-17 周六 04:00","utc8_clock":4},{"expiration_date":"2026-11-20","expiry_label":"11 月 20 日","weekday":"周五","rule":"第三个周五","shifted_to_thursday":0,"et_cutoff":"16:00","us_clock":"EST 冬令时","beijing_cutoff":"11-21 周六 05:00","utc8_clock":5},{"expiration_date":"2026-12-18","expiry_label":"12 月 18 日","weekday":"周五","rule":"第三个周五","shifted_to_thursday":0,"et_cutoff":"16:00","us_clock":"EST 冬令时","beijing_cutoff":"12-19 周六 05:00","utc8_clock":5}],"shape":"series","sql":"SELECT\n    toString(expiry)                                                        AS expiration_date,\n    concat(toString(toMonth(expiry)), ' 月 ', toString(toDayOfMonth(expiry)), ' 日') AS expiry_label,\n    transform(toDayOfWeek(expiry), [4, 5], ['周四', '周五'], '其他')         AS weekday,\n    if(expiry = third_friday, '第三个周五', '周五休市，提前至周四')            AS rule,\n    if(expiry = third_friday, 0, 1)                                         AS shifted_to_thursday,\n    formatDateTime(cutoff_et, '%H:%i', 'America/New_York')                  AS et_cutoff,\n    if(timeZoneOffset(cutoff_et) = -14400, 'EDT 夏令时', 'EST 冬令时')        AS us_clock,\n    concat(formatDateTime(cutoff_et, '%m-%d', 'Asia/Shanghai'), ' ',\n           transform(toDayOfWeek(toTimeZone(cutoff_et, 'Asia/Shanghai')), [5, 6], ['周五', '周六'], '其他'), ' ',\n           formatDateTime(cutoff_et, '%H:%i', 'Asia/Shanghai'))             AS beijing_cutoff,\n    toHour(toTimeZone(cutoff_et, 'Asia/Shanghai'))                          AS utc8_clock\nFROM\n(\n    SELECT\n        cal.third_friday                                                    AS third_friday,\n        if(cal.third_friday IN (SELECT date FROM global_markets.stocks_market_holidays WHERE status = 'closed')\n           OR (cal.third_friday < today() - 3 AND ifNull(t.bars, 0) = 0),\n           cal.third_friday - 1,\n           cal.third_friday)                                                AS expiry,\n        toDateTime(concat(toString(expiry), ' 16:00:00'), 'America/New_York') AS cutoff_et\n    FROM\n    (\n        SELECT addDays(month_start, ((5 - toDayOfWeek(month_start) + 7) % 7) + 14) AS third_friday\n        FROM (SELECT addMonths(toDate('2026-01-01'), arrayJoin(range(12))) AS month_start)\n    ) AS cal\n    LEFT JOIN\n    (\n        SELECT\n            toDate(toTimeZone(window_start, 'America/New_York')) AS d,\n            count()                                              AS bars\n        FROM global_markets.delayed_stocks_minute_aggs\n        WHERE ticker = 'SPY'\n          AND window_start >= toDate('2026-01-01')\n          AND window_start <  toDate('2027-01-02')\n          AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60\n               + toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570\n          AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60\n               + toMinute(toTimeZone(window_start, 'America/New_York'))) < 960\n        GROUP BY d\n    ) AS t ON t.d = cal.third_friday\n)\nORDER BY expiry","computed_at":"2026-10-24T21:27:27.057225+00:00","elapsed":0.362485429}