US Market Hours and Daylight Saving Time
US market hours never change in New York: 9:30 to 16:00 ET all year. See what daylight saving does to the open in London, Frankfurt, Tokyo and Sydney.
US market hours do not change with daylight saving time. The New York Stock Exchange and Nasdaq run the regular session from 9:30 to 16:00 New York time on every trading day of the year, in January exactly as in July. What moves twice a year is the local time of that open for everyone outside the United States, and for a few weeks each spring and autumn the distance between New York and Europe sits an hour away from its usual size.
Do US market hours change with daylight saving time?
No. The exchange runs its session on Eastern Time, and Eastern Time is a wall clock that carries two names through the year: Eastern Standard Time (EST) through the winter, Eastern Daylight Time (EDT) through the summer. The clocks move underneath the session. The session itself stays at 9:30.
The receipts are in the timestamps. Market data is stored in Coordinated Universal Time (UTC), the global reference clock that never observes daylight saving. The panel below takes the 9:30 opening minute of the final regular session of each month across two years, using SPY (the S&P 500 tracker) as the reference tape, and prints that one instant on both clocks.
The exact SQL behind every number
WITH ny_opens AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
min(window_start) AS open_utc
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND toDate(toTimeZone(window_start, 'America/New_York')) BETWEEN toDate('2024-08-01') AND toDate('2026-07-31')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) = 570
GROUP BY session_date
)
SELECT formatDateTime(toStartOfMonth(session_date), '%Y-%m') AS month,
formatDateTimeInJodaSyntax(toStartOfMonth(session_date), 'MMMM yyyy') AS month_label,
formatDateTime(toTimeZone(argMax(open_utc, session_date), 'America/New_York'), '%H:%i') AS ny_open_et_clock,
formatDateTime(argMax(open_utc, session_date), '%H:%i') AS ny_open_utc_clock,
toHour(toTimeZone(argMax(open_utc, session_date), 'America/New_York')) * 60
+ toMinute(toTimeZone(argMax(open_utc, session_date), 'America/New_York')) AS ny_open_et_minutes,
toHour(argMax(open_utc, session_date)) * 60
+ toMinute(argMax(open_utc, session_date)) AS ny_open_utc_minutes
FROM ny_opens
GROUP BY toStartOfMonth(session_date)
ORDER BY toStartOfMonth(session_date)Read the two lines together. The New York line is flat: 09:30 in August 2024, the same 09:30 in July 2026, and at all 24 month-ends in between. The UTC line steps: 13:30 on the summer clock, 14:30 by November 2024 on the winter clock, then back again in the spring. One hour, twice a year, and the New York open never notices.
When do US clocks change?
Two rules, not two fixed dates. Clocks go forward one hour on the second Sunday in March and back one hour on the first Sunday in November, both at 2:00 local time. That pattern has held since 2007. Standard time is the winter setting, daylight saving time is the summer one, and the summer setting covers close to two thirds of the trading year.
Nothing about the trading day moves on either Sunday. The session opens at the same wall-clock minute in New York on the Friday before and the Monday after. What changes is the UTC stamp on that minute, 14:30 on the winter clock against 13:30 on the summer one, and with it every local start time outside the United States.
What time does the US market open in my time zone?
Your local answer is New York's 9:30 plus your city's distance from New York, and the distance is the part that moves. The panel below takes one real 9:30 open from a US summer session in 2026 and one from a US winter session in the same year, then converts both instants into eight cities.
The exact SQL behind every number
WITH anchors AS (
SELECT maxIf(window_start, toMonth(toTimeZone(window_start, 'America/New_York')) = 6) AS summer,
maxIf(window_start, toMonth(toTimeZone(window_start, 'America/New_York')) = 1) AS winter
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND toYear(toTimeZone(window_start, 'America/New_York')) = 2026
AND toMonth(toTimeZone(window_start, 'America/New_York')) IN (1, 6)
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) = 570
),
local_opens AS (
SELECT arrayJoin([
('Sao Paulo', toHour(toTimeZone(summer, 'America/Sao_Paulo')) * 60 + toMinute(toTimeZone(summer, 'America/Sao_Paulo')), toHour(toTimeZone(winter, 'America/Sao_Paulo')) * 60 + toMinute(toTimeZone(winter, 'America/Sao_Paulo'))),
('London', toHour(toTimeZone(summer, 'Europe/London')) * 60 + toMinute(toTimeZone(summer, 'Europe/London')), toHour(toTimeZone(winter, 'Europe/London')) * 60 + toMinute(toTimeZone(winter, 'Europe/London'))),
('Frankfurt', toHour(toTimeZone(summer, 'Europe/Berlin')) * 60 + toMinute(toTimeZone(summer, 'Europe/Berlin')), toHour(toTimeZone(winter, 'Europe/Berlin')) * 60 + toMinute(toTimeZone(winter, 'Europe/Berlin'))),
('Dubai', toHour(toTimeZone(summer, 'Asia/Dubai')) * 60 + toMinute(toTimeZone(summer, 'Asia/Dubai')), toHour(toTimeZone(winter, 'Asia/Dubai')) * 60 + toMinute(toTimeZone(winter, 'Asia/Dubai'))),
('Mumbai', toHour(toTimeZone(summer, 'Asia/Kolkata')) * 60 + toMinute(toTimeZone(summer, 'Asia/Kolkata')), toHour(toTimeZone(winter, 'Asia/Kolkata')) * 60 + toMinute(toTimeZone(winter, 'Asia/Kolkata'))),
('Singapore', toHour(toTimeZone(summer, 'Asia/Singapore')) * 60 + toMinute(toTimeZone(summer, 'Asia/Singapore')), toHour(toTimeZone(winter, 'Asia/Singapore')) * 60 + toMinute(toTimeZone(winter, 'Asia/Singapore'))),
('Tokyo', toHour(toTimeZone(summer, 'Asia/Tokyo')) * 60 + toMinute(toTimeZone(summer, 'Asia/Tokyo')), toHour(toTimeZone(winter, 'Asia/Tokyo')) * 60 + toMinute(toTimeZone(winter, 'Asia/Tokyo'))),
('Sydney', toHour(toTimeZone(summer, 'Australia/Sydney')) * 60 + toMinute(toTimeZone(summer, 'Australia/Sydney')), toHour(toTimeZone(winter, 'Australia/Sydney')) * 60 + toMinute(toTimeZone(winter, 'Australia/Sydney')))
]) AS city_open
FROM anchors
)
SELECT tupleElement(city_open, 1) AS city,
formatDateTime(toDateTime(tupleElement(city_open, 2) * 60, 'UTC'), '%H:%i') AS local_open_us_summer,
formatDateTime(toDateTime(tupleElement(city_open, 3) * 60, 'UTC'), '%H:%i') AS local_open_us_winter,
round(((tupleElement(city_open, 2) + 1440 - 570) % 1440) / 60, 1) AS hours_ahead_us_summer,
round(((tupleElement(city_open, 3) + 1440 - 570) % 1440) / 60, 1) AS hours_ahead_us_winter
FROM local_opens
ORDER BY hours_ahead_us_summerCompare the two offset columns. London and Frankfurt hold the same distance under both US regimes, 5 and 6 hours ahead. Europe moves its clocks in the same direction as the United States, and for most of the year the gap between the two is unchanged.
East of Europe the picture flips. Dubai and Tokyo keep one clock all year, and they take the entire US shift on their own side. The New York open arrives in Tokyo at 22:30 on the US summer clock and 23:30 on the winter one, a move from 13 hours ahead to 14. Mumbai sits at a half-hour offset, 9.5 hours ahead in the US summer and 10.5 in the US winter.
Sydney swings furthest, from 14 hours ahead to 16. Southern-hemisphere daylight saving runs the opposite way round the calendar, and the two shifts add up rather than cancel out. On the US winter clock the New York open lands there at 01:30 the following morning. At the top of the table, Sao Paulo is 1 hour ahead in the US summer and 2 in the US winter: Brazil stopped changing its clocks in 2019.
The three weeks each spring when London sits closer
The United States and Europe do not change clocks on the same Sunday. The European Union and the United Kingdom switch on the last Sunday in March and back on the last Sunday in October, both at 01:00 UTC. The US switch comes two or three weeks earlier in March. In the sessions in between, New York has already moved forward and London has not, and the usual London gap narrows by an hour. Spring 2026, session by session:
The exact SQL behind every number
WITH ny_open AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
min(window_start) AS open_utc
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND toDate(toTimeZone(window_start, 'America/New_York')) BETWEEN toDate('2026-03-02') AND toDate('2026-04-10')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) = 570
GROUP BY session_date
)
SELECT session_date AS date,
formatDateTime(session_date, '%b %e') AS date_label,
formatDateTime(toTimeZone(open_utc, 'Europe/London'), '%H:%i') AS london_local_open,
formatDateTime(toTimeZone(open_utc, 'Europe/Berlin'), '%H:%i') AS frankfurt_local_open,
round(((toHour(toTimeZone(open_utc, 'Europe/London')) * 60
+ toMinute(toTimeZone(open_utc, 'Europe/London')) + 1440 - 570) % 1440) / 60, 1) AS london_hours_ahead,
round(((toHour(toTimeZone(open_utc, 'Europe/Berlin')) * 60
+ toMinute(toTimeZone(open_utc, 'Europe/Berlin')) + 1440 - 570) % 1440) / 60, 1) AS frankfurt_hours_ahead
FROM ny_open
ORDER BY dateFrom Mar 2 through Mar 6 the New York open printed 14:30 in London and 15:30 in Frankfurt, 5 and 6 hours ahead. On Mar 9, the first session after the US moved its clocks, the same open printed 13:30 in London: 4 hours ahead, an hour closer than the week before. It stayed there through Mar 27. From Mar 30, the first session after the European switch, London was back at 5 hours and the open returned to 14:30.
A calendar reminder pinned to the usual local time is wrong for that stretch, which is the practical cost of the mismatch. It also drags the first minutes of US trading an hour earlier into the European afternoon, and those minutes behave differently from the rest of the day (why spreads widen at the open).
Autumn, and the cities that never change at all
In autumn the mismatch runs the other way and lasts a single week. Europe falls back on the last Sunday in October, the United States on the first Sunday in November. The panel below adds Tokyo, where the local clock does not move at any point in the year.
The exact SQL behind every number
WITH ny_open AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
min(window_start) AS open_utc
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND toDate(toTimeZone(window_start, 'America/New_York')) BETWEEN toDate('2025-10-06') AND toDate('2025-11-07')
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) = 570
GROUP BY session_date
)
SELECT session_date AS date,
formatDateTime(session_date, '%b %e') AS date_label,
formatDateTime(toTimeZone(open_utc, 'Europe/London'), '%H:%i') AS london_local_open,
formatDateTime(toTimeZone(open_utc, 'Asia/Tokyo'), '%H:%i') AS tokyo_local_open,
round(((toHour(toTimeZone(open_utc, 'Europe/London')) * 60
+ toMinute(toTimeZone(open_utc, 'Europe/London')) + 1440 - 570) % 1440) / 60, 1) AS london_hours_ahead,
round(((toHour(toTimeZone(open_utc, 'Asia/Tokyo')) * 60
+ toMinute(toTimeZone(open_utc, 'Asia/Tokyo')) + 1440 - 570) % 1440) / 60, 1) AS tokyo_hours_ahead
FROM ny_open
ORDER BY dateThrough Oct 24 London sat 5 hours ahead of New York. From Oct 27 it sat 4 hours ahead, the one week in the autumn when the two cities are closest. From Nov 3, the first session after the US fell back, the gap measured 5 hours again.
Tokyo's line tells the simpler story. Japan keeps one clock all year, and the line steps exactly once, on the US date: 13 hours ahead through Oct 31, 14 hours ahead from Nov 3, with the New York open moving from 22:30 to 23:30 on the Tokyo clock. The whole hour lands on the local side. A desk in Tokyo resets its own alarm twice a year while the New York bell stays where it was.
What this page is not
This page covers the clock change alone. The neighbouring questions have pages of their own:
- the regular session and how the trading day is built: US stock market hours
- the windows either side of it: premarket and after-hours trading
- the days the market is shut or closes early: market holidays and early closes, with is the stock market open today for a single date
- how the US session overlaps Europe and Asia: US market hours around the world
One sentence to carry away: your local open time moves twice a year, and the New York open does not.
US market hours FAQ
Do US stock market hours change with daylight saving time?
No. The regular session runs from 9:30 to 16:00 Eastern Time in every month of the year. Eastern Time changes label from EST to EDT on the second Sunday in March and back on the first Sunday in November, and the UTC stamp of the open moves with it, from 14:30 on the winter clock to 13:30 on the summer one.
What time does the US market open in the UK?
14:30 London time whenever the two countries are on the same footing, whether both are on summer clocks or both on winter clocks. In the weeks between the US switch in March and the UK switch at the end of that month, the open arrives at 13:30 instead.
What time does the US market open in Asia?
The local time changes even though the New York session does not. In 2026 the New York open landed in Tokyo at 22:30 on the US summer clock and 23:30 on the US winter clock. Most of Asia keeps a single year-round clock, and the full one-hour shift lands locally.
Why does the London to New York gap change for part of March?
The two regions change clocks on different Sundays: the US on the second Sunday in March, the UK and the EU on the last. In the sessions in between, New York has moved forward and London has not, and the gap measures 4 hours rather than the usual 5.
Does the closing time move as well?
The close sits on the same clock as the open, at 16:00 New York time all year. Its UTC stamp shifts by the same hour on the same two Sundays, and every local closing time outside the United States shifts with it.
Every figure above is a stored query over real session timestamps. Open the SQL under any panel, or run the same conversion for your own city on the Strasmore terminal.