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

US Stock Market Hours in Singapore Time

US stock market hours in Singapore time: the New York session opens 21:30 or 22:30 SGT depending on US daylight saving. Full SGT clock, plus holidays.

US stock market hours in Singapore time land overnight. New York's regular session runs 21:30 to 04:00 SGT for most of the year and 22:30 to 05:00 SGT through the US winter. Singapore holds UTC+8 every day of the year and never shifts its clocks, so the one hour of movement comes entirely from the American side of the calendar.

What time does the US stock market open in Singapore time?

There are two answers, and the date decides which one applies. While US daylight saving time is in force, roughly mid-March to early November, New York sits 12 hours behind Singapore. Outside that window the gap is 13 hours.

  • Regular session: 21:30 to 04:00 SGT in US summer, 22:30 to 05:00 SGT in US winter.
  • Premarket: from 16:00 SGT in summer, 17:00 SGT in winter, running up to the open.
  • After hours: through to 08:00 SGT in summer, 09:00 SGT in winter.
  • Early-close days: the 13:00 ET finish lands at 01:00 SGT in summer, 02:00 SGT in winter.

Two things follow from that. The US open arrives after dinner in Singapore, and the US close arrives in the small hours of the next morning. Every session also straddles two Singapore dates: a Monday session in New York ends on a Tuesday morning here. Trade dates, settlement and broker statements all stay on the US date, which is the date an exchange works from. The session-by-session breakdown of what happens inside those hours sits in our US stock market hours guide, and the same clock for other cities is in US market hours around the world.

The whole Singapore day, drawn from the tape

Rather than convert the times by hand, the panel below reads them off the tape. It takes every SPY minute bar from two pinned months, January 2026 and August 2026, and totals the shares traded in each half hour of a Singapore day, averaged per session. January falls in US winter time, August in US summer time. The clock on the left runs midnight to midnight, Singapore time.

QuerySPY volume by Singapore half hour: US winter month vs US summer month
34 rows (showing 20)
sgt_timejanuary_shares_millionsaugust_shares_millions
00:004.411.93
00:304.131.71
01:003.431.52
01:303.271.48
02:003.011.82
02:302.891.82
03:003.842.19
03:304.586.6
04:005.094.11
04:3012.520.25
05:005.60.16
05:300.660.09
06:000.130.07
06:300.090.02
07:000.080.02
07:300.030.02
08:000.030
08:300.040
16:0000.08
16:3000.02
The exact SQL behind every number
WITH bars AS
(
    SELECT
        toStartOfInterval(toTimeZone(window_start, 'Asia/Singapore'), INTERVAL 30 MINUTE) AS sgt_bucket,
        toDate(toTimeZone(window_start, 'America/New_York'))                              AS et_date,
        volume
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND (
            (window_start >= toDateTime('2026-01-05 05:00:00') AND window_start < toDateTime('2026-01-31 05:00:00'))
         OR (window_start >= toDateTime('2026-08-03 04:00:00') AND window_start < toDateTime('2026-08-29 04:00:00'))
          )
)
SELECT
    formatDateTime(sgt_bucket, '%H:%i') AS sgt_time,
    round(sumIf(volume, et_date < toDate('2026-04-01'))
          / greatest(uniqExactIf(et_date, et_date < toDate('2026-04-01')), 1) / 1e6, 2) AS january_shares_millions,
    round(sumIf(volume, et_date > toDate('2026-04-01'))
          / greatest(uniqExactIf(et_date, et_date > toDate('2026-04-01')), 1) / 1e6, 2) AS august_shares_millions
FROM bars
GROUP BY sgt_time
HAVING january_shares_millions + august_shares_millions > 0
ORDER BY sgt_time
Run this yourself

The table starts at 00:00 SGT, where the August month averaged 1.93 million shares in that half hour, and it ends at 23:30 SGT. Only 34 of the 48 half hours in a Singapore day carry any US volume at all. The two series trace the same shape one hour apart: each January bucket repeats what August printed 60 minutes earlier. Singapore midnight is the middle of the New York afternoon, which is why the tape is busy at the very top of the table.

Why the time changes twice a year, on US rules

US daylight saving starts on the second Sunday in March and ends on the first Sunday in November. Singapore has no equivalent. A Singapore-based investor's screen shifts by an hour twice a year with nothing local changing at all. Those dates are not guesswork here: the panel records the UTC hour that each 09:30 New York open printed in, then lists every session where that hour moved.

QueryEvery US clock change since 2022, detected from the opening print
shift_dateshift_date_labelsgt_open_beforesgt_open_aftersgt_open_hour
2022-03-14Mar 14, 202222:3021:3021
2022-11-07Nov 7, 202221:3022:3022
2023-03-13Mar 13, 202322:3021:3021
2023-11-06Nov 6, 202321:3022:3022
2024-03-11Mar 11, 202422:3021:3021
2024-11-04Nov 4, 202421:3022:3022
2025-03-10Mar 10, 202522:3021:3021
2025-11-03Nov 3, 202521:3022:3022
2026-03-09Mar 9, 202622:3021:3021
The exact SQL behind every number
WITH
opens AS
(
    SELECT
        toDate(toTimeZone(window_start, 'America/New_York')) AS session_date,
        toHour(min(window_start))                            AS open_hour_utc
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= toDateTime('2022-01-03 00:00:00')
      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 session_date
),
shifts AS
(
    SELECT
        session_date,
        open_hour_utc,
        lagInFrame(open_hour_utc) OVER (ORDER BY session_date ASC ROWS BETWEEN 1 PRECEDING AND CURRENT ROW) AS prev_open_hour_utc
    FROM opens
)
SELECT
    toString(session_date)                          AS shift_date,
    formatDateTime(session_date, '%b %e, %Y')       AS shift_date_label,
    concat(toString(prev_open_hour_utc + 8), ':30') AS sgt_open_before,
    concat(toString(open_hour_utc + 8), ':30')      AS sgt_open_after,
    toUInt8(open_hour_utc + 8)                      AS sgt_open_hour
FROM shifts
WHERE prev_open_hour_utc > 0
  AND open_hour_utc != prev_open_hour_utc
ORDER BY session_date
Run this yourself

Each row is the first US session on the new clock. Since Mar 9, 2026 the New York open has printed at 21:30 SGT, against 22:30 SGT on the session before it. Across 9 changes the line draws a square wave between the same two values, forward an hour in March and back an hour in November. The mechanics of both transitions are in US market hours and daylight saving.

No overlap with the Singapore trading day

Singapore's own equity session runs in local daytime, 09:00 to 17:00 SGT. The US regular session begins at 21:30 SGT at the earliest. The two never overlap, on any date. The extended US windows only clip the edges: in US summer the premarket opens at 16:00 SGT, an hour before the local close, and the US after-hours session runs on to 08:00 SGT.

The practical shape of that is straightforward. An order left resting with a broker works while you sleep. A market order queued before bed fills at whatever the first touch is after the opening bell, and the opening minutes are among the most volatile of the US day. Quotes in the extended windows, which is where the 16:00 to 21:30 SGT activity sits, are thinner than regular-session quotes, and the distance between the best bid and the best offer widens with them. Buy at $10.05 while the bid is $10.00 and you have paid five cents for immediacy before the position has moved at all. After-hours and premarket trading covers what changes in those windows, and trading US stocks 24 hours a day covers the venues that run past them.

The calendar that closes your screen is the US one

Singapore public holidays have no effect on a US position. Chinese New Year, Hari Raya Puasa and Deepavali are ordinary trading days in New York. The days your US screen goes dark are the NYSE and Nasdaq ones, plus a short list of 13:00 ET early closes.

QueryUpcoming US closures, with the early-close finish in Singapore time
holiday_dateholiday_date_labelholidayday_statussgt_close_localdays_away
2026-11-26Nov 26, 2026Thanksgivingclosed62
2026-11-27Nov 27, 2026Thanksgivingearly-closeSat 02:0063
2026-12-24Dec 24, 2026Christmasearly-closeFri 02:0090
2026-12-25Dec 25, 2026Christmasclosed91
2027-01-01Jan 1, 2027New Years Dayclosed98
2027-01-18Jan 18, 2027Martin Luther King, Jr. Dayclosed115
2027-02-15Feb 15, 2027Washington's Birthdayclosed143
2027-03-26Mar 26, 2027Good Fridayclosed182
2027-05-31May 31, 2027Memorial Dayclosed248
2027-06-18Jun 18, 2027Juneteenthclosed266
2027-07-05Jul 5, 2027Independence Dayclosed283
2027-09-06Sep 6, 2027Labor Dayclosed346
The exact SQL behind every number
SELECT
    toString(date)                    AS holiday_date,
    formatDateTime(date, '%b %e, %Y') AS holiday_date_label,
    any(name)                         AS holiday,
    any(status)                       AS day_status,
    any(if(status = 'early-close',
           formatDateTime(toTimeZone(close, 'Asia/Singapore'), '%a %H:%i'),
           ''))                       AS sgt_close_local,
    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 on the exchange calendar is Thanksgiving on Nov 26, 2026, 62 days out, and the loaded calendar carries 12 dated closures in total. Read every date in it as a US date. A full closure removes the Singapore evening of that date along with the early morning after it. An early close ends the session at 13:00 ET, which the sgt_close_local column converts for you: in Singapore that finish falls in the small hours of the following day, which is how the half day after Thanksgiving turns into a Saturday morning here. Every US market holiday and early close lists the full forward calendar.

The 30 percent line on US dividends

The second surprise for a Singapore-based holder of US names has nothing to do with the clock. Singapore and the United States have no income tax treaty covering dividend withholding. The statutory US rate on a dividend paid to a non-resident holder is 30%, and with no treaty rate to claim, 30% is what applies. A UK-resident holder of the same share is withheld at the 15% treaty rate on the same payment.

QueryTwelve months of dividends per share, gross and after 30% US withholding
tickergross_per_share_usdnet_after_30_pct_usd
JNJ5.283.7
PG4.293
XOM4.122.88
MSFT3.642.55
KO2.081.46
AAPL1.060.74
The exact SQL behind every number
WITH paid AS
(
    SELECT
        ticker,
        ex_dividend_date,
        max(cash_amount) AS cash_amount
    FROM global_markets.stocks_dividends
    WHERE ticker IN ('AAPL', 'MSFT', 'JNJ', 'PG', 'KO', 'XOM')
      AND currency = 'USD'
      AND ex_dividend_date >= toDate('2025-09-01')
      AND ex_dividend_date <  toDate('2026-09-01')
    GROUP BY ticker, ex_dividend_date
)
SELECT
    ticker,
    round(sum(cash_amount), 2)        AS gross_per_share_usd,
    round(sum(cash_amount) * 0.70, 2) AS net_after_30_pct_usd
FROM paid
GROUP BY ticker
ORDER BY gross_per_share_usd DESC
Run this yourself

Over the twelve months to September 2026, JNJ paid the largest gross dividend of the six at $5.28 per share. At the statutory rate the same share pays $3.7 into a Singapore-resident account. The withholding applies to the dividend payment itself; a disposal is handled under separate rules. The full mechanics, including the W-8BEN form brokers collect and the way a fund's domicile changes the arithmetic, are in dividend withholding tax for non-US investors. This page describes how the withholding works and is not tax advice.

How these panels are built

The Singapore clock panel pins two fixed months, January 5 to 30 and August 3 to 28 of 2026, so its shape stays put when the page refreshes. Volumes are averaged per session inside each half-hour bucket and printed in millions of shares. The daylight saving panel infers each transition from the UTC timestamp of the 09:30 New York open, which moves by exactly one hour on each side of a change, so the dates come from trading records rather than from a hardcoded list. The holiday calendar is forward looking: each closure drops off the table once it has passed. Every timestamp is stored in UTC and converted to Asia/Singapore inside the SQL, never by hand.

FAQ

What time does the US stock market open in Singapore?

21:30 SGT while US daylight saving time is in force, and 22:30 SGT outside it. The close lands at 04:00 or 05:00 SGT the following morning, so a single US session always covers two Singapore dates.

Does Singapore change its clocks for US daylight saving?

No. Singapore holds UTC+8 all year. The one-hour move in your US session times comes from the US switching on the second Sunday in March and the first Sunday in November, which is why the change can land in the middle of a Singapore work week.

Can I trade US stocks during Singapore working hours?

Not in the US regular session, which has no overlap with the 09:00 to 17:00 SGT local day. US premarket opens at 16:00 SGT in US summer time and 17:00 SGT in winter, and overnight venues operating outside main-session hours are covered in the 24-hour guide above.

Do Singapore investors pay US tax on US dividends?

Yes, taken at source. With no US tax treaty covering Singapore, the statutory 30% rate applies to the gross dividend and there is no reduced rate to claim on the form a broker collects.

Do Singapore public holidays close the US market?

No. Only the NYSE and Nasdaq calendar closes a US position's market. Chinese New Year and Deepavali are full US trading sessions, while US holidays such as Thanksgiving and Independence Day leave an ordinary Singapore working day with a dark evening screen.


Every panel above ships with the SQL that produced it, expandable underneath. To convert a session, a holiday or an early close into your own clock, ask the question in plain English on the Strasmore terminal.