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.
| sgt_time | january_shares_millions | august_shares_millions |
|---|---|---|
| 00:00 | 4.41 | 1.93 |
| 00:30 | 4.13 | 1.71 |
| 01:00 | 3.43 | 1.52 |
| 01:30 | 3.27 | 1.48 |
| 02:00 | 3.01 | 1.82 |
| 02:30 | 2.89 | 1.82 |
| 03:00 | 3.84 | 2.19 |
| 03:30 | 4.58 | 6.6 |
| 04:00 | 5.09 | 4.11 |
| 04:30 | 12.52 | 0.25 |
| 05:00 | 5.6 | 0.16 |
| 05:30 | 0.66 | 0.09 |
| 06:00 | 0.13 | 0.07 |
| 06:30 | 0.09 | 0.02 |
| 07:00 | 0.08 | 0.02 |
| 07:30 | 0.03 | 0.02 |
| 08:00 | 0.03 | 0 |
| 08:30 | 0.04 | 0 |
| 16:00 | 0 | 0.08 |
| 16:30 | 0 | 0.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_timeThe 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.
| shift_date | shift_date_label | sgt_open_before | sgt_open_after | sgt_open_hour |
|---|---|---|---|---|
| 2022-03-14 | Mar 14, 2022 | 22:30 | 21:30 | 21 |
| 2022-11-07 | Nov 7, 2022 | 21:30 | 22:30 | 22 |
| 2023-03-13 | Mar 13, 2023 | 22:30 | 21:30 | 21 |
| 2023-11-06 | Nov 6, 2023 | 21:30 | 22:30 | 22 |
| 2024-03-11 | Mar 11, 2024 | 22:30 | 21:30 | 21 |
| 2024-11-04 | Nov 4, 2024 | 21:30 | 22:30 | 22 |
| 2025-03-10 | Mar 10, 2025 | 22:30 | 21:30 | 21 |
| 2025-11-03 | Nov 3, 2025 | 21:30 | 22:30 | 22 |
| 2026-03-09 | Mar 9, 2026 | 22:30 | 21:30 | 21 |
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_dateEach 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.
| holiday_date | holiday_date_label | holiday | day_status | sgt_close_local | days_away |
|---|---|---|---|---|---|
| 2026-11-26 | Nov 26, 2026 | Thanksgiving | closed | 62 | |
| 2026-11-27 | Nov 27, 2026 | Thanksgiving | early-close | Sat 02:00 | 63 |
| 2026-12-24 | Dec 24, 2026 | Christmas | early-close | Fri 02:00 | 90 |
| 2026-12-25 | Dec 25, 2026 | Christmas | closed | 91 | |
| 2027-01-01 | Jan 1, 2027 | New Years Day | closed | 98 | |
| 2027-01-18 | Jan 18, 2027 | Martin Luther King, Jr. Day | closed | 115 | |
| 2027-02-15 | Feb 15, 2027 | Washington's Birthday | closed | 143 | |
| 2027-03-26 | Mar 26, 2027 | Good Friday | closed | 182 | |
| 2027-05-31 | May 31, 2027 | Memorial Day | closed | 248 | |
| 2027-06-18 | Jun 18, 2027 | Juneteenth | closed | 266 | |
| 2027-07-05 | Jul 5, 2027 | Independence Day | closed | 283 | |
| 2027-09-06 | Sep 6, 2027 | Labor Day | closed | 346 |
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 dateThe 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.
| ticker | gross_per_share_usd | net_after_30_pct_usd |
|---|---|---|
| JNJ | 5.28 | 3.7 |
| PG | 4.29 | 3 |
| XOM | 4.12 | 2.88 |
| MSFT | 3.64 | 2.55 |
| KO | 2.08 | 1.46 |
| AAPL | 1.06 | 0.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 DESCOver 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.