Strasmore Research
學習 Matt Connor作者: Matt Connor · data as of October 4, 2026 · refreshed weekly

美股開盤時間台北對照表:夏令冬令與四時段

美股開盤時間換算台北時間:盤前、正常盤、盤後與夜盤四個時段的完整對照,夏令與冬令兩種版本,並附台股 09:00 至 13:30 的落點、美股提早收盤與休市日的台北時間。

美股開盤時間換算成台北時間,夏令時間期間是晚上 21:30,冬令時間期間是晚上 22:30,正常盤分別在隔天清晨 04:00 與 05:00 收盤。台灣全年固定 UTC+8,沒有日光節約時間,所以這一小時的位移是美國那一端在換,不是台灣這一端。下面第一張表把盤前、正常盤、盤後和夜盤四個時段一次換成台北時間,夏令與冬令各一欄;美東那一側的時段定義可以對照 美股交易時間。

美股開盤時間台北對照表:四個時段

美股一個交易日在美東時間被切成四段:夜盤(目前透過 ATS 撮合)、盤前、正常盤、盤後。下面這張表的換算由資料庫內建的 IANA 時區資料庫完成,左邊是美東時間,右邊兩欄分別是夏令與冬令期間的台北時間,另外標出每一段的長度。

查詢美股四個交易時段換算台北時間(夏令與冬令)
session_nameet_windowtaipei_summertaipei_wintersession_hourstaipei_note
夜盤 Overnight20:00 - 04:0008:00 - 16:0009:00 - 17:008台北白天,與台股盤中並行
盤前 Pre-Market04:00 - 09:3016:00 - 21:3017:00 - 22:305.5台北傍晚到深夜
正常盤 Regular09:30 - 16:0021:30 - 04:0022:30 - 05:006.5台北深夜到隔天清晨
盤後 After-Hours16:00 - 20:0004:00 - 08:0005:00 - 09:004台北隔天清晨到上班前
每個數據背後的精確 SQL 語法
WITH us_sessions AS
(
    SELECT arrayJoin([
        (1, '夜盤 Overnight',    '20:00:00', '04:00:00', '台北白天,與台股盤中並行'),
        (2, '盤前 Pre-Market',   '04:00:00', '09:30:00', '台北傍晚到深夜'),
        (3, '正常盤 Regular',    '09:30:00', '16:00:00', '台北深夜到隔天清晨'),
        (4, '盤後 After-Hours',  '16:00:00', '20:00:00', '台北隔天清晨到上班前')
    ]) AS s
)
SELECT
    tupleElement(s, 2)                                                       AS session_name,
    concat(substring(tupleElement(s, 3), 1, 5), ' - ',
           substring(tupleElement(s, 4), 1, 5))                              AS et_window,
    concat(
        formatDateTime(toTimeZone(toDateTime(concat('2026-07-15 ', tupleElement(s, 3)), 'America/New_York'), 'Asia/Taipei'), '%H:%i'),
        ' - ',
        formatDateTime(toTimeZone(toDateTime(concat('2026-07-15 ', tupleElement(s, 4)), 'America/New_York'), 'Asia/Taipei'), '%H:%i')
    )                                                                        AS taipei_summer,
    concat(
        formatDateTime(toTimeZone(toDateTime(concat('2026-12-15 ', tupleElement(s, 3)), 'America/New_York'), 'Asia/Taipei'), '%H:%i'),
        ' - ',
        formatDateTime(toTimeZone(toDateTime(concat('2026-12-15 ', tupleElement(s, 4)), 'America/New_York'), 'Asia/Taipei'), '%H:%i')
    )                                                                        AS taipei_winter,
    round(
        modulo(
            dateDiff('minute',
                toDateTime(concat('2026-07-15 ', tupleElement(s, 3)), 'America/New_York'),
                toDateTime(concat('2026-07-15 ', tupleElement(s, 4)), 'America/New_York')
            ) + 1440, 1440) / 60.0, 1)                                       AS session_hours,
    tupleElement(s, 5)                                                       AS taipei_note
FROM us_sessions
ORDER BY tupleElement(s, 1)
自己執行這個查詢

表裡共 4 段。正常盤是美東時間 09:30 - 16:00,長度 6.5 小時,換成台北時間,夏令期間是 21:30 - 04:00,冬令期間是 22:30 - 05:00。最長的一段是夜盤,8 小時,落在台北的 08:00 - 16:00(冬令期間 09:00 - 17:00),剛好是台灣的上班時間。

要留意的是跨日。盤前整段還在同一個台北日期,正常盤開盤後不久就跨過台北的午夜,收盤已經是台北的隔天清晨,盤後則整段落在台北的隔天早上。所以台北的星期二晚上對應美股的星期二,台北的星期三清晨仍然是美股的星期二;台北星期六清晨看到的收盤,是美股的星期五。

為什麼美股開盤時間會在 21:30 與 22:30 之間換位

美國日光節約時間的起訖寫在法律裡。依美國國家標準與技術研究院(NIST)公布的說明,夏令時間自三月第二個星期日凌晨 02:00 開始,至十一月第一個星期日凌晨 02:00 結束,這套規則自 2007 年起適用。對照到這兩年:2026 年是 3 月 8 日到 11 月 1 日,2027 年是 3 月 14 日到 11 月 7 日。原始出處在這裡:NIST 日光節約時間說明。

台灣最後一次實施日光節約時間是 1979 年,之後全年固定 UTC+8。兩邊相減的結果:夏令時間期間台北比紐約快 12 小時,冬令時間期間快 13 小時。一年兩次,台北這邊什麼都沒改,美股開盤時間卻自己移動一小時。

這件事不必相信任何人的換算。下面抓 SPY 在 2025 年 9 月到 2026 年 9 月之間、每個月第一個與最後一個交易日那根「美東 09:30」的分鐘 K,把時間戳換成台北時間,再把台北時刻折成當日分鐘數畫線。

查詢SPY 開盤那根分鐘 K 的台北時間,逐月(2025-09 至 2026-09)
monthtaipei_open_first_sessiontaipei_open_last_sessiontaipei_open_minute_firsttaipei_open_minute_last
2025-09-0121:3021:3012901290
2025-10-0121:3021:3012901290
2025-11-0122:3022:3013501350
2025-12-0122:3022:3013501350
2026-01-0122:3022:3013501350
2026-02-0122:3022:3013501350
2026-03-0122:3021:3013501290
2026-04-0121:3021:3012901290
2026-05-0121:3021:3012901290
2026-06-0121:3021:3012901290
2026-07-0121:3021:3012901290
2026-08-0121:3021:3012901290
2026-09-0121:3021:3012901290
每個數據背後的精確 SQL 語法
SELECT
    toString(toStartOfMonth(toDate(toTimeZone(window_start, 'America/New_York')))) AS month,
    formatDateTime(toTimeZone(min(window_start), 'Asia/Taipei'), '%H:%i')          AS taipei_open_first_session,
    formatDateTime(toTimeZone(max(window_start), 'Asia/Taipei'), '%H:%i')          AS taipei_open_last_session,
    toUInt16(toHour(toTimeZone(min(window_start), 'Asia/Taipei')) * 60
           + toMinute(toTimeZone(min(window_start), 'Asia/Taipei')))               AS taipei_open_minute_first,
    toUInt16(toHour(toTimeZone(max(window_start), 'Asia/Taipei')) * 60
           + toMinute(toTimeZone(max(window_start), 'Asia/Taipei')))               AS taipei_open_minute_last
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
  AND window_start >= toDateTime('2025-09-01 00:00:00', 'UTC')
  AND window_start <  toDateTime('2026-10-01 00:00:00', 'UTC')
  AND toHour(toTimeZone(window_start, 'America/New_York')) = 9
  AND toMinute(toTimeZone(window_start, 'America/New_York')) = 30
GROUP BY month
ORDER BY month
自己執行這個查詢

這 13 個月當中,2026-03-01 那個月最值得看:該月第一個交易日的開盤落在台北 22:30,最後一個交易日已經是 21:30,位移發生在月中的那個星期日。2025-09-01 的開盤則是台北 21:30,和夏令期間其他月份一致。圖上那條線只有兩個高度,1290 分與 1350 分,相差的 60 分鐘就是那一小時。

台股 09:00 到 13:30 的時候,美股在做什麼

臺灣證券交易所的正常盤是 09:00 到 13:30,盤後定價交易申報到 14:30。這段時間美股的三個交易所時段全部不在運作:台北早上 08:00(冬令期間 09:00)盤後剛收完,下一次要等到台北下午 16:00(冬令期間 17:00)盤前才開始。兩邊的盤中時段沒有任何重疊。

下面把 SPY 最近約三個月的分鐘 K 全部按台北時間的小時分組,列出每小時的平均成交股數,沒有資料的小時補 0。

查詢SPY 成交量的台北時間分布(每小時平均,近約三個月)
24 rows (showing 20)
taipei_hourspy_volume_millionsminutes_with_bars
00:003.492880
01:003.12880
02:004.12880
03:0010.462880
04:005.342840
05:000.312239
06:000.112237
07:000.042165
08:0000
09:0000
10:0000
11:0000
12:0000
13:0000
14:0000
15:0000
16:000.12443
17:000.042179
18:000.062197
19:000.192770
每個數據背後的精確 SQL 語法
SELECT
    concat(leftPad(toString(g.h), 2, '0'), ':00')   AS taipei_hour,
    round(ifNull(v.avg_millions, 0), 2)             AS spy_volume_millions,
    toUInt32(ifNull(v.minutes_traded, 0))           AS minutes_with_bars
FROM
(
    SELECT arrayJoin(range(24)) AS h
) AS g
LEFT JOIN
(
    SELECT
        toHour(toTimeZone(window_start, 'Asia/Taipei'))                      AS h,
        toFloat64(sum(volume))
            / countDistinct(toDate(toTimeZone(window_start, 'America/New_York')))
            / 1e6                                                            AS avg_millions,
        count()                                                              AS minutes_traded
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= today() - 70
      AND window_start <  today() - 2
    GROUP BY h
) AS v ON v.h = g.h
ORDER BY g.h
自己執行這個查詢

台北中午 12:00 那一小時,SPY 的分鐘 K 數量是 0 根。台北時間 09:00 到 15:00 整段都是同樣情形,而那正好蓋住台股的盤中。量集中在兩處:台北 21:00 到 22:00(含美股 21:30 開盤)平均 4.26 百萬股,台北 03:00 到 04:00(美股收盤前最後一小時)平均 10.46 百萬股。

一點說明:這份紀錄是集中市場的分鐘 K,夜盤走的是 ATS,成交不計入其中。圖上的空白代表交易所時段沒有在跑,不代表那幾個小時完全無法下單。各時段的報價深度差多少,盤前與盤後交易 那篇用資料拆得更細。

睡前掛單,時間要怎麼算

台股 13:30 收盤之後,距離美股盤前開始還有兩個半小時(冬令期間三個半小時),距離美股開盤還有 8 小時(冬令期間 9 小時)。對台北的作息,這代表幾件事:

  • 「當日有效」(day) 的委託在美東 16:00 正常盤收盤時失效,換成台北時間是隔天清晨 04:00,冬令期間 05:00。睡前掛的當日單,醒來時生命週期已經結束。
  • 美股的交易日期以美東日期計。台北星期三清晨成交的委託,對帳單上是星期二,T+1 交割也從美東日期起算。
  • 盤前與盤後是和正常盤分開的時段,多數券商在延長時段只接受限價單,而且委託不會自動延續到下一個時段。
  • 夜盤的美股日期歸屬是後面那個交易日。台北星期一上班時間在夜盤成交的委託,算的是美股的星期一。

美股休市與提早收盤,換成台北時間

美股一年約有十天全日休市,另外幾天提早在美東 13:00 收盤。先看全日休市的日子。

查詢美股未來的全日休市日(含距今天數)
date_zhholiday_dateweekday_etholidaydays_away
11月26日2026-11-26ThuThanksgiving53
12月25日2026-12-25FriChristmas82
1月1日2027-01-01FriNew Years Day89
1月18日2027-01-18MonMartin Luther King, Jr. Day106
2月15日2027-02-15MonWashington's Birthday134
3月26日2027-03-26FriGood Friday173
5月31日2027-05-31MonMemorial Day239
6月18日2027-06-18FriJuneteenth257
7月5日2027-07-05MonIndependence Day274
9月6日2027-09-06MonLabor Day337
每個數據背後的精確 SQL 語法
SELECT
    concat(toString(toMonth(date)), '月', toString(toDayOfMonth(date)), '日') AS date_zh,
    toString(date)                                                           AS holiday_date,
    formatDateTime(date, '%a')                                               AS weekday_et,
    any(name)                                                                AS holiday,
    dateDiff('day', today(), date)                                           AS days_away
FROM global_markets.stocks_market_holidays
WHERE date >= today()
  AND status = 'closed'
GROUP BY date
ORDER BY date
自己執行這個查詢

日曆上還有 10 個全日休市日,最近一個是 11月26日 的 Thanksgiving,距今 53 天。全日休市就是整天沒有交易所時段,台北的晚上與隔天清晨都不會有盤。這張表只保留今天之後的日期,過去的會自己消失。

提早收盤日不同,它是一個縮短的正常盤:美東 09:30 照常開盤,13:00 收盤,只有三個半小時。

查詢美股提早收盤日:美東 13:00 收盤換成台北時間
date_zhweekday_etholidayclose_etclose_taipei_zhdays_away
11月27日FriThanksgiving13:0011月28日 02:0054
12月24日ThuChristmas13:0012月25日 02:0081
每個數據背後的精確 SQL 語法
SELECT
    concat(toString(toMonth(date)), '月', toString(toDayOfMonth(date)), '日') AS date_zh,
    formatDateTime(date, '%a')                                               AS weekday_et,
    any(name)                                                                AS holiday,
    any(formatDateTime(toTimeZone(close, 'America/New_York'), '%H:%i'))      AS close_et,
    any(concat(
        toString(toMonth(toTimeZone(close, 'Asia/Taipei'))), '月',
        toString(toDayOfMonth(toTimeZone(close, 'Asia/Taipei'))), '日 ',
        formatDateTime(toTimeZone(close, 'Asia/Taipei'), '%H:%i')
    ))                                                                       AS close_taipei_zh,
    dateDiff('day', today(), date)                                           AS days_away
FROM global_markets.stocks_market_holidays
WHERE date >= today()
  AND status = 'early-close'
GROUP BY date
ORDER BY date
自己執行這個查詢

名單上有 2 個提早收盤日。最近的一個是 Thanksgiving,美東 13:00 收盤,換成台北時間是 11月28日 02:00。原本要等到台北清晨四、五點的收盤,提前到凌晨一、兩點,而台北這一側的開盤時間不變。

還有一件事:美股休市不等於台股休市。感恩節、美國獨立紀念日、美國勞動節這些日子台股照常交易;反過來,農曆春節連假台股休市期間,美股照常開盤,台北的交易時段一分鐘也沒變。兩邊的行事曆各走各的。完整日曆在 美股休市日與提早收盤日,其他時區的排法在 世界各地的美股交易時間。

2026 年 12 月的 23/5 夜盤,對台北代表什麼

截至 2026 年 10 月,Nasdaq 已公告並送交監管機關審查,計畫自 2026 年 12 月起把每個交易日拉長到 23 小時、一週五天:日盤為美東時間 04:00 到 20:00,夜盤為美東時間 21:00 到隔日 04:00,中間保留一小時維護;Cboe 也提出同期上線的類似安排。核准與實際時程仍以交易所與監管機關公告為準。

換成台北時間,那段夜盤在冬令期間是 10:00 到 17:00,夏令期間是 09:00 到 16:00。對台北的讀者,這是第一次有一整段交易所時段落在台灣的白天,和台股盤中直接並排,掛單與看盤不必再排到半夜。差異與細節寫在 美股 23/5 全天候交易。

換算與資料註記
  • 時區換算全部由資料庫內建的 IANA 時區資料庫完成(America/New_York 與 Asia/Taipei)。夏令欄位以 2026-07-15 為基準日,冬令欄位以 2026-12-15 為基準日。
  • 美國夏令時間的起訖規則以 NIST 公布的說明查核:三月第二個星期日到十一月第一個星期日,2007 年起適用。
  • 休市與提早收盤面板取自交易所行事曆,只保留今天之後的日期;全日休市與提早收盤分成兩張表,避免同一個假期重複出現。
  • 成交量面板使用 SPY 的分鐘 K,並排除最近兩天,避開前緣一到兩天的資料落後。
  • 台股時段(正常盤 09:00 到 13:30、盤後定價交易申報至 14:30)為臺灣證券交易所公告的固定時段,全年不隨季節變動。

FAQ

美股幾點開盤?換成台北時間是幾點?

美股正常盤在美東時間 09:30 開盤、16:00 收盤。換成台北時間,夏令時間期間是 21:30 開盤、隔天清晨 04:00 收盤;冬令時間期間是 22:30 開盤、隔天清晨 05:00 收盤。

台灣有夏令時間嗎?為什麼美股開盤時間會變?

台灣最後一次實施日光節約時間是 1979 年,現在全年固定 UTC+8。移動的是美國那一端:每年三月第二個星期日到十一月第一個星期日,紐約的時鐘往前一小時,台北看到的美股開盤時間就從 22:30 變成 21:30。

美股提早收盤那天,台北時間幾點收盤?

提早收盤日的正常盤在美東 13:00 結束。冬令時間期間換成台北時間是隔天凌晨 02:00,夏令時間期間是隔天凌晨 01:00。上面的提早收盤面板直接列出每一天換算後的台北日期與時間。

美股休市,台股也休市嗎?

不會。兩個市場的行事曆互不相關:感恩節、美國獨立紀念日台股照常交易,農曆春節台股休市期間美股照常開盤。只有週末是兩邊都休的。

台股盤中時間可以交易美股嗎?

台股盤中(台北 09:00 到 13:30)對應美東的傍晚與深夜,美股的盤前、正常盤、盤後都不在運作,這段時間只有 ATS 的夜盤在撮合。2026 年 12 月起的 23 小時安排會把一整段交易所時段移到台灣的白天。


每一張表下面都附了計算用的 SQL,展開就能看到數字是怎麼數出來的。想換成自己的時區、自己的標的或自己的時段,在 Strasmore 終端機用白話問一次就會跑出來。

#market-hours#taiwan#time-zones#premarket#after-hours