US Stock Market Hours in Mountain Time
US stock market hours in Mountain Time: 7:30 a.m. to 2:00 p.m. in Denver all year, 6:30 a.m. in most of Arizona each summer. Live session data inside.
US stock market hours in Mountain Time are 7:30 a.m. to 2:00 p.m. local in Denver, Boise, Salt Lake City, and Albuquerque, every trading day of the year. In most of Arizona the same session reads 7:30 a.m. to 2:00 p.m. through the winter and 6:30 a.m. to 1:00 p.m. through the summer. The exchange clock itself is fixed at 9:30 a.m. to 4:00 p.m. Eastern. Everything below is a translation of that one schedule.
What are US stock market hours in Mountain Time?
The New York Stock Exchange and Nasdaq run one regular session a day, 9:30 a.m. to 4:00 p.m. Eastern Time, six and a half hours long. Mountain Time sits two clock hours west of Eastern whenever both zones keep the same daylight saving convention. That puts the open at 7:30 a.m. and the close at 2:00 p.m. on a local clock. Colorado, Utah, Montana, Wyoming, New Mexico, and southern Idaho all shift with New York in March and November. Their local session times never move. For the session itself, minute by minute, see our stock market hours guide.
The panel below takes SPY, the exchange traded fund that tracks the S&P 500, and averages its volume in each half hour of the regular session over the past several weeks. Each row carries the Eastern clock and the Mountain clock side by side.
| et_time | denver_time | avg_volume_millions |
|---|---|---|
| 09:30 | 07:30 | 3.75 |
| 10:00 | 08:00 | 2.7 |
| 10:30 | 08:30 | 2.26 |
| 11:00 | 09:00 | 2.59 |
| 11:30 | 09:30 | 1.93 |
| 12:00 | 10:00 | 1.61 |
| 12:30 | 10:30 | 1.45 |
| 13:00 | 11:00 | 1.5 |
| 13:30 | 11:30 | 1.23 |
| 14:00 | 12:00 | 1.71 |
| 14:30 | 12:30 | 2.28 |
| 15:00 | 13:00 | 2.39 |
| 15:30 | 13:30 | 7.03 |
The exact SQL behind every number
SELECT
formatDateTime(toStartOfInterval(toTimeZone(window_start, 'America/New_York'), INTERVAL 30 MINUTE), '%H:%i') AS et_time,
formatDateTime(toStartOfInterval(toTimeZone(window_start, 'America/Denver'), INTERVAL 30 MINUTE), '%H:%i') AS denver_time,
round(sum(volume)
/ uniqExact(toDate(toTimeZone(window_start, 'America/New_York')))
/ 1e6, 2) AS avg_volume_millions
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY'
AND window_start >= today() - 45
AND window_start < today() - 2
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) >= 570
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) < 960
GROUP BY et_time, denver_time
ORDER BY et_timeThe first half hour of the day, 09:30 Eastern and 07:30 in Denver, averaged 3.75 million SPY shares a session. Trading thins through the middle of the day: the 12:30 Eastern bucket averaged 1.45 million. The closing stretch, stamped 13:30 on a Mountain clock, averaged 7.03 million and ends at 2:00 p.m. local. Read the denver_time column from top to bottom and you have the whole Mountain trading day.
Why does Arizona see a different open time?
Most of Arizona keeps Mountain Standard Time all year. Its clocks stay put on the second Sunday in March and the first Sunday in November, while New York's move. From November to March, Phoenix and Denver read the same hour, two behind New York, and the opening bell lands at 7:30 a.m. on both. From March to November, New York and Denver each move an hour forward and Phoenix does not, which leaves Phoenix three hours behind New York. The open reads 6:30 a.m. there, and the close 1:00 p.m. The rule underneath all of this is the subject of our daylight saving and market hours guide, and the wider set of conversions sits in US market hours around the world.
The step is visible in the tape itself. The panel below pulls the 9:30 a.m. Eastern opening minute of every SPY session over the past year and reads that one instant on three clocks, month by month.
| month | denver_open | phoenix_open_earliest | phoenix_open_latest | denver_gap_hours | phoenix_gap_hours |
|---|---|---|---|---|---|
| 2025-08 | 07:30 | 06:30 | 06:30 | 2 | 3 |
| 2025-09 | 07:30 | 06:30 | 06:30 | 2 | 3 |
| 2025-10 | 07:30 | 06:30 | 06:30 | 2 | 3 |
| 2025-11 | 07:30 | 07:30 | 07:30 | 2 | 2 |
| 2025-12 | 07:30 | 07:30 | 07:30 | 2 | 2 |
| 2026-01 | 07:30 | 07:30 | 07:30 | 2 | 2 |
| 2026-02 | 07:30 | 07:30 | 07:30 | 2 | 2 |
| 2026-03 | 07:30 | 06:30 | 07:30 | 2 | 2.77 |
| 2026-04 | 07:30 | 06:30 | 06:30 | 2 | 3 |
| 2026-05 | 07:30 | 06:30 | 06:30 | 2 | 3 |
| 2026-06 | 07:30 | 06:30 | 06:30 | 2 | 3 |
| 2026-07 | 07:30 | 06:30 | 06:30 | 2 | 3 |
| 2026-08 | 07:30 | 06:30 | 06:30 | 2 | 3 |
| 2026-09 | 07:30 | 06:30 | 06:30 | 2 | 3 |
The exact SQL behind every number
WITH session_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 window_start >= today() - 400
AND window_start < today() - 2
AND toHour(toTimeZone(window_start, 'America/New_York')) = 9
AND toMinute(toTimeZone(window_start, 'America/New_York')) = 30
GROUP BY session_date
)
SELECT
formatDateTime(toStartOfMonth(session_date), '%Y-%m') AS month,
min(formatDateTime(toTimeZone(open_utc, 'America/Denver'), '%H:%i')) AS denver_open,
min(formatDateTime(toTimeZone(open_utc, 'America/Phoenix'), '%H:%i')) AS phoenix_open_earliest,
max(formatDateTime(toTimeZone(open_utc, 'America/Phoenix'), '%H:%i')) AS phoenix_open_latest,
round(avg(toHour(toTimeZone(open_utc, 'America/New_York'))
- toHour(toTimeZone(open_utc, 'America/Denver'))), 2) AS denver_gap_hours,
round(avg(toHour(toTimeZone(open_utc, 'America/New_York'))
- toHour(toTimeZone(open_utc, 'America/Phoenix'))), 2) AS phoenix_gap_hours
FROM session_opens
GROUP BY month
ORDER BY monthDenver's distance from New York measured 2 hours in the earliest month covered and 2 hours in the latest, across 14 months of sessions. The Phoenix column is the one that moves. Where phoenix_open_earliest and phoenix_open_latest disagree on a row, that month holds a changeover weekend and carries both local open times.
Count sessions rather than months and the year splits cleanly in two.
| phoenix_open | denver_open | sessions |
|---|---|---|
| 06:30 | 07:30 | 188 |
| 07:30 | 07:30 | 85 |
The exact SQL behind every number
WITH session_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 window_start >= today() - 400
AND window_start < today() - 2
AND toHour(toTimeZone(window_start, 'America/New_York')) = 9
AND toMinute(toTimeZone(window_start, 'America/New_York')) = 30
GROUP BY session_date
)
SELECT
formatDateTime(toTimeZone(open_utc, 'America/Phoenix'), '%H:%i') AS phoenix_open,
formatDateTime(toTimeZone(open_utc, 'America/Denver'), '%H:%i') AS denver_open,
count() AS sessions
FROM session_opens
GROUP BY phoenix_open, denver_open
ORDER BY phoenix_open188 sessions in the window opened at 06:30 on a Phoenix clock, and 85 opened at 07:30. On both rows the Denver clock reads 07:30. That is the lesson in two rows: one zone with a single local open time all year, one zone with two.
When does the local open time change?
Two weekends a year touch this, and only two. Under the current US schedule, clocks spring forward on the second Sunday in March and fall back on the first Sunday in November. Nothing on the exchange calendar moves on those dates. The regular session is 9:30 a.m. to 4:00 p.m. Eastern on the Friday before and on the Monday after.
In Denver the local open is 7:30 a.m. on both sides of each changeover, since the local clock and the New York clock move together. In Phoenix the March weekend pulls the open an hour earlier, to 6:30 a.m., and the November weekend pushes it back to 7:30 a.m. Those two Mondays are the only sessions in the year when a Phoenix trader resets an alarm. If the schedule is ever rewritten, the mechanism holds: the local open tracks New York's clock, offset by whatever your own zone is doing that week.
Does the Navajo Nation follow daylight saving?
Yes, and it is the one part of Arizona that does. The Navajo Nation, whose territory covers the northeastern corner of the state along with parts of Utah and New Mexico, observes daylight saving time. Through the summer its clock runs an hour ahead of Phoenix, which puts the open at 7:30 a.m. locally, the same as Denver, in every month of the year. The Hopi Reservation, which sits inside Navajo Nation land, keeps Arizona standard time. A phone that takes its zone from the network usually gets this right. A wall clock does not.
Premarket and after-hours trading in Mountain Time
The extended sessions shift by exactly the same offset as the regular one. Premarket trading on most retail platforms opens at 4:00 a.m. Eastern, which is 2:00 a.m. in Denver on every day of the year. In Phoenix that is 2:00 a.m. from November to March and 1:00 a.m. from March to November. After-hours trading runs until 8:00 p.m. Eastern, putting the Denver cutoff at 6:00 p.m. and the Phoenix cutoff at 6:00 p.m. in winter or 5:00 p.m. in summer. Volume in those windows is a fraction of the regular session, and the mechanics are covered in premarket and after-hours trading.
Early closes and holidays in Mountain Time
A handful of holidays shorten the session instead of cancelling it. On an early close the market stops at 1:00 p.m. Eastern rather than 4:00 p.m., a three and a half hour day. In Denver that finish is 11:00 a.m. In most of Arizona it is 11:00 a.m. from November to March and 10:00 a.m. from March to November. The forward calendar below carries both local times on the rows where an early close applies.
| holiday_date | closure_label | weekday | holiday | day_status | denver_close | phoenix_close | days_away |
|---|---|---|---|---|---|---|---|
| 2026-11-26 | Nov 26 | Thu | Thanksgiving | closed | 63 | ||
| 2026-11-27 | Nov 27 | Fri | Thanksgiving | early-close | 11:00 | 11:00 | 64 |
| 2026-12-24 | Dec 24 | Thu | Christmas | early-close | 11:00 | 11:00 | 91 |
| 2026-12-25 | Dec 25 | Fri | Christmas | closed | 92 | ||
| 2027-01-01 | Jan 1 | Fri | New Years Day | closed | 99 | ||
| 2027-01-18 | Jan 18 | Mon | Martin Luther King, Jr. Day | closed | 116 | ||
| 2027-02-15 | Feb 15 | Mon | Washington's Birthday | closed | 144 | ||
| 2027-03-26 | Mar 26 | Fri | Good Friday | closed | 183 | ||
| 2027-05-31 | May 31 | Mon | Memorial Day | closed | 249 | ||
| 2027-06-18 | Jun 18 | Fri | Juneteenth | closed | 267 | ||
| 2027-07-05 | Jul 5 | Mon | Independence Day | closed | 284 | ||
| 2027-09-06 | Sep 6 | Mon | Labor Day | closed | 347 |
The exact SQL behind every number
SELECT
toString(date) AS holiday_date,
formatDateTime(date, '%b %e') AS closure_label,
formatDateTime(date, '%a') AS weekday,
any(name) AS holiday,
any(status) AS day_status,
any(if(status = 'early-close',
formatDateTime(toTimeZone(close, 'America/Denver'), '%H:%i'),
'')) AS denver_close,
any(if(status = 'early-close',
formatDateTime(toTimeZone(close, 'America/Phoenix'), '%H:%i'),
'')) AS phoenix_close,
dateDiff('day', today(), date) AS days_away
FROM global_markets.stocks_market_holidays
WHERE date >= today()
GROUP BY date
ORDER BY dateThe next closure ahead is Thanksgiving on Nov 26, 63 days from today, and 12 dated closures sit on the loaded calendar. A row tagged closed means no trading at all. A row tagged early-close is a shortened session ending at the denver_close time shown. The same calendar in Eastern Time, with the weekend observation rules, lives in stock market holidays and early closes, and is the stock market open today answers the single-day version of the question.
FAQ
What time does the stock market open in Mountain Time?
7:30 a.m. in Denver, Salt Lake City, and the rest of the Mountain zone that observes daylight saving, on every trading day of the year. In most of Arizona the open is 7:30 a.m. from early November to mid March and 6:30 a.m. the rest of the year.
What time does the stock market close in Mountain Time?
2:00 p.m. local in Denver, matching the 4:00 p.m. Eastern close. In most of Arizona the close is 2:00 p.m. in winter and 1:00 p.m. in summer. On an early-close holiday the finish moves to 11:00 a.m. Denver time.
Is Arizona on Mountain Time for the stock market?
Arizona sits in the Mountain zone but stays on standard time all year. From March to November its clock matches Los Angeles rather than Denver, and the open reads 6:30 a.m. For the other four months it matches Denver at 7:30 a.m.
Does the market open earlier in summer in Phoenix?
On a Phoenix wall clock, yes. The open reads 6:30 a.m. from mid March to early November and 7:30 a.m. the rest of the year. The New York session never moves. Only the distance between the two clocks changes.
How long is the trading day in Mountain Time?
Six and a half hours of regular trading, 7:30 a.m. to 2:00 p.m. in Denver, the same length as in every other US time zone. Premarket and after-hours access stretch the day at both ends without changing the regular session.
Every panel here ships with the SQL that produced it, expand one to see how the clock columns were built. To check the local timing of a session in your own zone, ask the question in plain English on the Strasmore terminal.