美股盘前和盘后对应北京时间几点?夏令时与冬令时
美股盘前交易对应北京时间16:00到21:30(夏令时)或17:00到22:30(冬令时),盘后做到次日08:00或09:00。附两个时段的北京时间对照、夏令时切换日,以及限价单和价差的差别。
美股盘前和盘后对应北京时间几点,先给结论:夏令时期间盘前是北京时间 16:00 到 21:30,盘后是次日 04:00 到 08:00;冬令时期间两头各推迟一小时,盘前 17:00 到 22:30,盘后次日 05:00 到 09:00。对住在国内的人来说,美股一天里最不用熬夜的两段恰好就是它们,盘前落在下班前后,盘后落在第二天出门前。方便是真的,代价在报价和成交方式上,后半篇会用数据把这笔成本摆出来,规则全貌可以对照盘前与盘后交易的完整规则。
美股盘前、盘中、盘后对应北京时间几点
在多数券商那里,美股一个完整交易日分三段:盘前 04:00 到 09:30(美东时间,下文缩写为 ET),盘中 09:30 到 16:00,盘后 16:00 到 20:00。下面这张表把三段直接换算成北京时间,夏令时和冬令时各一列。换算由时区函数完成,不是手算,所以不会出现那种把 12 小时和 13 小时记混的错误。
| label | et_window | beijing_summer | beijing_winter | beijing_calendar_day | hours |
|---|---|---|---|---|---|
| 盘前 Pre-Market | 04:00 - 09:30 ET | 16:00 - 21:30 | 17:00 - 22:30 | 与美东同一天 | 5.5 |
| 盘中 Regular | 09:30 - 16:00 ET | 21:30 - 04:00 | 22:30 - 05:00 | 当晚开始,次日凌晨结束 | 6.5 |
| 盘后 After-Hours | 16:00 - 20:00 ET | 04:00 - 08:00 | 05:00 - 09:00 | 整段在次日清晨 | 4 |
每个数字背后的完整 SQL
SELECT
s.1 AS label,
s.2 AS et_window,
concat(
formatDateTime(toTimeZone(toDateTime(concat('2026-07-15 ', s.3), 'America/New_York'), 'Asia/Shanghai'), '%H:%i'),
' - ',
formatDateTime(toTimeZone(toDateTime(concat('2026-07-15 ', s.4), 'America/New_York'), 'Asia/Shanghai'), '%H:%i')
) AS beijing_summer,
concat(
formatDateTime(toTimeZone(toDateTime(concat('2026-12-15 ', s.3), 'America/New_York'), 'Asia/Shanghai'), '%H:%i'),
' - ',
formatDateTime(toTimeZone(toDateTime(concat('2026-12-15 ', s.4), 'America/New_York'), 'Asia/Shanghai'), '%H:%i')
) AS beijing_winter,
s.5 AS beijing_calendar_day,
s.6 AS hours
FROM
(
SELECT arrayJoin([
('盘前 Pre-Market', '04:00 - 09:30 ET', '04:00:00', '09:30:00', '与美东同一天', 5.5),
('盘中 Regular', '09:30 - 16:00 ET', '09:30:00', '16:00:00', '当晚开始,次日凌晨结束', 6.5),
('盘后 After-Hours', '16:00 - 20:00 ET', '16:00:00', '20:00:00', '整段在次日清晨', 4.0)
]) AS s
)
ORDER BY et_window盘前这一段长 5.5 小时,夏令时对应北京时间 16:00 - 21:30,冬令时 17:00 - 22:30。盘后长 4 小时,夏令时 04:00 - 08:00,冬令时 05:00 - 09:00。夹在中间的盘中 6.5 小时,是三段里唯一需要熬夜的一段。三段相加 16 小时,其中十个小时落在国内人清醒且方便的时候。
一个美股交易日,占北京时间的两个日期
隔夜这件事把很多人绕晕,其实一句话就能settle:一个美东交易日在北京时间里跨两个日期。以美东周一为例,盘前 16:00 到 21:30 落在北京时间周一傍晚,盘中从周一 21:30 跨过零点到周二 04:00,盘后 04:00 到 08:00 整段在周二早上。所以美东周一这一个交易日,在北京时间里是从周一下班到周二上班前的一段连续时间。
日期归属只看美东。委托记录、成交回报和结算日都按美东交易日计,北京时间周二清晨成交的那一笔,在对账单上属于美东周一。周末的边界同理:美东周五的盘后落在北京时间周六早上 04:00 到 08:00(夏令时),那是一周里最后一次能下单的窗口,再往后要等下周一北京时间 16:00 的盘前。表里 beijing_calendar_day 一列写的就是每段归哪一天。
一年两次差一小时:三月第二个周日和十一月第一个周日
国内不实行夏令时,所以变的永远是美国那一头,这也是最容易让人错过开盘的一件事。美国的夏令时从三月第二个周日凌晨 2 点(美东当地)开始,到十一月第一个周日凌晨 2 点结束。两次切换都发生在周日,第一个受影响的美股交易日是紧接着的周一。下面这张表按这条规则算出接下来几次切换,以及切换之后各时段在北京时间的新时刻。
| switch_date | switch_label | clock_change | beijing_premarket_open | beijing_regular_open | beijing_afterhours_end | days_away |
|---|---|---|---|---|---|---|
| 2026-11-01 | 2026年11月1日 | 美东回到冬令时 EST | 17:00 | 22:30 | 09:00 | 35 |
| 2027-03-14 | 2027年3月14日 | 美东进入夏令时 EDT | 16:00 | 21:30 | 08:00 | 168 |
| 2027-11-07 | 2027年11月7日 | 美东回到冬令时 EST | 17:00 | 22:30 | 09:00 | 406 |
| 2028-03-12 | 2028年3月12日 | 美东进入夏令时 EDT | 16:00 | 21:30 | 08:00 | 532 |
| 2028-11-05 | 2028年11月5日 | 美东回到冬令时 EST | 17:00 | 22:30 | 09:00 | 770 |
每个数字背后的完整 SQL
SELECT
toString(d) AS switch_date,
concat(toString(toYear(d)), '年', toString(toMonth(d)), '月',
toString(toDayOfMonth(d)), '日') AS switch_label,
if(toMonth(d) = 3, '美东进入夏令时 EDT', '美东回到冬令时 EST') AS clock_change,
if(toMonth(d) = 3, '16:00', '17:00') AS beijing_premarket_open,
if(toMonth(d) = 3, '21:30', '22:30') AS beijing_regular_open,
if(toMonth(d) = 3, '08:00', '09:00') AS beijing_afterhours_end,
dateDiff('day', today(), d) AS days_away
FROM
(
SELECT arrayJoin([
toDate(concat(toString(y), '-03-01'))
+ ((7 - toDayOfWeek(toDate(concat(toString(y), '-03-01')))) % 7) + 7,
toDate(concat(toString(y), '-11-01'))
+ ((7 - toDayOfWeek(toDate(concat(toString(y), '-11-01')))) % 7)
]) AS d
FROM (SELECT arrayJoin([2026, 2027, 2028]) AS y)
)
WHERE d >= today()
ORDER BY d
LIMIT 5最近的一次切换是 2026年11月1日,距今 35 天,内容是 美东回到冬令时 EST。从那之后的第一个交易日起,盘前从北京时间 17:00 开始,盘中 22:30 开盘,盘后收在次日 09:00。券商 App 里显示的时间通常会自己跟着调,人这边容易出错的是两处:设了固定闹钟的那一周,以及挂在盘前盘后的长期有效委托,它们的有效时段跟着美东走。
提前收盘日:美股在北京时间凌晨一点就收了
美国一年有十来个全天休市日,另外有几个半日市,盘中提前到 13:00 ET 收盘。半日市对国内的人影响更直接:盘中在北京时间凌晨 01:00(夏令时)或 02:00(冬令时)就结束了,熬到平常的收盘时间只会看到一条不动的价格。下面这张表是交易所日历上接下来的休市与提前收盘日,day_status 一列标出是全天休市还是提前收盘,提前收盘的行同时给出美东和北京时间的收盘时刻。
| holiday_date | weekday | holiday | day_status | et_close | beijing_close | days_away |
|---|---|---|---|---|---|---|
| 2026-11-26 | Thu | Thanksgiving | closed | 60 | ||
| 2026-11-27 | Fri | Thanksgiving | early-close | 13:00 | 11-28 02:00 | 61 |
| 2026-12-24 | Thu | Christmas | early-close | 13:00 | 12-25 02:00 | 88 |
| 2026-12-25 | Fri | Christmas | closed | 89 | ||
| 2027-01-01 | Fri | New Years Day | closed | 96 | ||
| 2027-01-18 | Mon | Martin Luther King, Jr. Day | closed | 113 | ||
| 2027-02-15 | Mon | Washington's Birthday | closed | 141 | ||
| 2027-03-26 | Fri | Good Friday | closed | 180 | ||
| 2027-05-31 | Mon | Memorial Day | closed | 246 | ||
| 2027-06-18 | Fri | Juneteenth | closed | 264 | ||
| 2027-07-05 | Mon | Independence Day | closed | 281 | ||
| 2027-09-06 | Mon | Labor Day | closed | 344 |
每个数字背后的完整 SQL
SELECT
toString(date) AS holiday_date,
formatDateTime(date, '%a') AS weekday,
any(name) AS holiday,
any(status) AS day_status,
any(if(status = 'early-close',
formatDateTime(toTimeZone(close, 'America/New_York'), '%H:%i'),
'')) AS et_close,
any(if(status = 'early-close',
formatDateTime(toTimeZone(close, 'Asia/Shanghai'), '%m-%d %H:%i'),
'')) AS beijing_close,
dateDiff('day', today(), date) AS days_away
FROM global_markets.stocks_market_holidays
WHERE date >= today()
GROUP BY date
ORDER BY date日历上接下来一共有 12 个休市或提前收盘的日期,最近的一个是 2026-11-26(Thanksgiving),距今 60 天,当天的状态是 closed。提前收盘日的盘后时段也随之提前开始,结束时刻各家券商不完全一样。假日和周末前后的完整安排见节假日和周末的盘后交易。
盘前盘后和盘中,差别在哪里
下单类型。大多数服务国内投资者的美股券商在盘前盘后只接受限价单,不接受市价单。机制上的道理是:延长时段的成交靠限价单之间互相匹配,没有集中竞价兜住价格,一张市价单在报价稀薄的委托簿上可能成交在离你预期很远的位置。限价单的另一面是可能整段时间都不成交,或者只成交一部分,未成交的部分通常在该时段结束时失效,是否延续到下一段由委托本身的设置决定。
买卖价差。价差是同一时刻卖一价和买一价之间的距离,它是下单那一刻就要付出的成本。下面这张图取 KO(可口可乐)在 2026 年 6 月 10 日 04:00 到 20:00 的逐笔报价,按美东整点算平均价差,单位是基点,1 个基点等于价格的万分之一。日期写死在 SQL 里,这张图不随时间变。
| et_hour | avg_spread_bps | quote_count |
|---|---|---|
| 04:00 | 19 | 150 |
| 05:00 | 19.74 | 219 |
| 06:00 | 23.95 | 195 |
| 07:00 | 14.29 | 237 |
| 08:00 | 14.82 | 835 |
| 09:00 | 2.43 | 100405 |
| 10:00 | 1.48 | 151094 |
| 11:00 | 1.42 | 115311 |
| 12:00 | 1.43 | 59105 |
| 13:00 | 1.4 | 55371 |
| 14:00 | 1.35 | 46091 |
| 15:00 | 1.27 | 66892 |
| 16:00 | 38.89 | 260 |
| 17:00 | 38.66 | 196 |
| 18:00 | 11.43 | 171 |
| 19:00 | 9.18 | 278 |
每个数字背后的完整 SQL
SELECT
concat(leftPad(toString(et_h), 2, '0'), ':00') AS et_hour,
round(avg(
(toFloat64(ask_price) - toFloat64(bid_price))
/ ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000
), 2) AS avg_spread_bps,
count() AS quote_count
FROM
(
SELECT
toHour(toTimeZone(sip_timestamp, 'America/New_York')) AS et_h,
ask_price,
bid_price
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'KO'
AND sip_timestamp >= toDateTime('2026-06-10 04:00:00', 'America/New_York')
AND sip_timestamp < toDateTime('2026-06-10 20:00:00', 'America/New_York')
AND bid_price > 0
AND ask_price > bid_price
)
GROUP BY et_h
HAVING count() >= 20
ORDER BY et_h那天最早有报价的整点是 04:00,平均价差 19 个基点,这一小时的报价更新 150 次。最后一个整点 19:00 的平均价差是 9.18 个基点。看曲线的形状:两端高,09:30 到 16:00 那几个整点明显塌下去。价差走宽的同时报价更新次数也少得多,买进再卖出的一个来回,成本就落在这个差上。
成交量。报价稀薄这件事,用成交量看更直观。下面这张表把最近约六周 SPY(标普 500 ETF)的分钟成交量按三个时段归并,算出各自占 04:00 到 20:00 全部成交的比例。
盘前占 2.52%,平均每个交易日 0.99 百万股;盘中占 83.65%,平均 32.84 百万股;盘后占 13.83%。换句话说,国内人最方便的那十个小时,装着一天里很小的一块成交量。这就是把方便换成流动性的那笔交易。
收盘价。盘后的成交不进入 16:00 ET 的收盘竞价,官方收盘价来自那一刻竞价的结果。盘后 18:00 ET 打出的一笔高价,在行情软件上单独显示,不会改写当天的收盘价,指数和基金净值用的也是竞价那个价格。
消息时点。财报和重大公告大量落在 16:00 ET 之后或 09:30 ET 之前,这是延长时段有人交易的主要时间点。涉及分红的时点安排另有讲究,见除息日的盘前挂单与开盘委托。
再往后:一周五天近乎全天
盘前盘后之后还有一步,把周一到周五拉到接近全天的交易。时间线、涉及哪些券商、以及和现在这套盘前盘后怎么衔接,都写在2026 年 12 月起的美股 23/5 交易;更宽的背景,比如“24 小时”这个说法到底指什么,在美股能不能 24 小时交易里。上面这张北京时间对照表在那之前一直有效。
FAQ
美股盘前交易北京时间几点开始?
夏令时期间是北京时间 16:00(美东 04:00),冬令时期间 17:00。盘前一直持续到北京时间 21:30 或 22:30,之后接上盘中。
美股盘后交易北京时间几点结束?
夏令时是次日 08:00,冬令时是次日 09:00,对应美东 20:00。美东周五的盘后落在北京时间周六早上,那是一周的最后一个下单窗口。
美股一个交易日算北京时间的哪一天?
跨两天。盘前在北京时间的当天下午和晚上,盘中跨零点,盘后在次日清晨。委托和结算的日期一律按美东交易日算,所以北京时间清晨成交的那一笔属于前一个美东日期。
夏令时切换的那一周要注意什么?
切换在周日凌晨完成,第一个受影响的交易日是紧接着的周一,所有时段在北京时间整体挪一小时。国内不实行夏令时,变的是美股那一头,上面的切换日表给出了接下来几次的具体日期。
盘前盘后可以下市价单吗?
大多数券商在这两个时段只接受限价单。限价单可能不成交或只成交一部分,未成交的部分一般在时段结束时失效。
盘后成交的价格会变成当天的收盘价吗?
不会。官方收盘价来自 16:00 ET 的收盘竞价,盘后的成交在行情里单独显示,不改写收盘价。
数据说明
- 时段对照表的北京时间由时区函数换算,夏令时一列以 2026 年 7 月 15 日为样本日,冬令时一列以 2026 年 12 月 15 日为样本日。
- 夏令时切换日由“三月第二个周日、十一月第一个周日”这条规则算出,日期不是写死的,所以往后几年都成立。
- 价差面板固定在 2026 年 6 月 10 日,覆盖 16 个有足够报价的整点,剔除了买价为零和买卖价交叉的记录。
- 成交量面板取最近约六周的分钟数据,截到前两天,最前沿还有一到两天的入库延迟。
每个面板下面都可以展开它背后的 SQL。把日期换成你自己关心的那一天,或者把 KO 换成你自己持有的股票,在 Strasmore 终端上用一句话就能重跑一遍。