Strasmore Research
Learn Matt ConnorBy Matt Connor · data as of September 24, 2026 · refreshed weekly

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.

QueryThe regular session, half hour by half hour, on both clocks
et_timedenver_timeavg_volume_millions
09:3007:303.75
10:0008:002.7
10:3008:302.26
11:0009:002.59
11:3009:301.93
12:0010:001.61
12:3010:301.45
13:0011:001.5
13:3011:301.23
14:0012:001.71
14:3012:302.28
15:0013:002.39
15:3013:307.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_time
Run this yourself

The 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.

QueryThe 9:30 a.m. Eastern open, read on three clocks, by month
monthdenver_openphoenix_open_earliestphoenix_open_latestdenver_gap_hoursphoenix_gap_hours
2025-0807:3006:3006:3023
2025-0907:3006:3006:3023
2025-1007:3006:3006:3023
2025-1107:3007:3007:3022
2025-1207:3007:3007:3022
2026-0107:3007:3007:3022
2026-0207:3007:3007:3022
2026-0307:3006:3007:3022.77
2026-0407:3006:3006:3023
2026-0507:3006:3006:3023
2026-0607:3006:3006:3023
2026-0707:3006:3006:3023
2026-0807:3006:3006:3023
2026-0907:3006:3006:3023
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 month
Run this yourself

Denver'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.

QuerySessions grouped by the local time the open landed
phoenix_opendenver_opensessions
06:3007:30188
07:3007:3085
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_open
Run this yourself

188 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.

QueryUpcoming market closures, with early-close times in Mountain Time
holiday_dateclosure_labelweekdayholidayday_statusdenver_closephoenix_closedays_away
2026-11-26Nov 26ThuThanksgivingclosed63
2026-11-27Nov 27FriThanksgivingearly-close11:0011:0064
2026-12-24Dec 24ThuChristmasearly-close11:0011:0091
2026-12-25Dec 25FriChristmasclosed92
2027-01-01Jan 1FriNew Years Dayclosed99
2027-01-18Jan 18MonMartin Luther King, Jr. Dayclosed116
2027-02-15Feb 15MonWashington's Birthdayclosed144
2027-03-26Mar 26FriGood Fridayclosed183
2027-05-31May 31MonMemorial Dayclosed249
2027-06-18Jun 18FriJuneteenthclosed267
2027-07-05Jul 5MonIndependence Dayclosed284
2027-09-06Sep 6MonLabor Dayclosed347
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 date
Run this yourself

The 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.