America/Halifax

America/Halifax covers Halifax, Sydney, Dartmouth and the rest of Canada, at -04:00 standard time, switching to -03:00 in summer.

Loading tool…

Worked examples

  • A winter instant in America/Halifax

    America/Halifax's UTC offset and DST status on a January date, converted to UTC.

  • A summer instant in America/Halifax

    America/Halifax's UTC offset and DST status on a July date, converted to UTC — compare against the winter example to see any DST shift.

  • Converting America/Halifax to America/New_York

    A worked conversion from America/Halifax to America/New_York for a specific instant.

TZ identifier and aliases

America/Halifax is the canonical identifier for Atlantic Time in Canada, covering Nova Scotia, New Brunswick, Prince Edward Island and part of Labrador. Canada/Atlantic is an older name still pointing at the same rules but is a deprecated alias — use America/Halifax in new code. America/Moncton, America/Glace_Bay and America/Goose_Bay currently share identical rules and are folded into the same entry.

UTC offset and DST rule

Atlantic Time is -04:00 (AST) on standard time and -03:00 (ADT) during daylight saving, following the second-Sunday-in-March to first-Sunday-in-November US/Canada rule (March 8 to November 1 in 2026). Halifax sits a consistent one hour ahead of Toronto and New York year-round, since both zones shift together on the same transition dates.

Using it in cron, CI and Postgres

Set TZ=America/Halifax for a process that should schedule by Atlantic Canadian local time. Postgres accepts it via SET TIME ZONE 'America/Halifax'; or the timezone setting, applying the DST rule correctly for any date rather than a fixed offset that would go wrong twice a year. Where a scheduler supports a CRON_TZ=America/Halifax line, jobs run by local time directly; GitHub Actions' schedule: trigger always evaluates in UTC and has no per-job timezone setting, so a job pinned to a fixed Atlantic-time hour needs its UTC equivalent recalculated across each DST boundary. As with any DST-observing zone, avoid the 2:00–3:00am local window for anything that must run exactly once — that hour is skipped on the March transition and repeated on the November one.

History and quirks

Atlantic Time predates Canada's 1883 adoption of the railroad time zone system in the Maritime provinces, and it's one of relatively few North American zones whose offset, -04:00, doesn't fall on a round number of hours behind the US zones to its west in a way that maps neatly to a "one-hour-per-zone" mental model people expect — it's exactly one hour ahead of Eastern Time, which is intuitive, but its position an hour ahead of New York rather than aligned with it regularly surprises travelers booking flights between Halifax and the US Northeast. Newfoundland, just east of this zone, is the more famous Canadian time oddity with its UTC-03:30 half-hour offset — but Atlantic Canada itself is comparatively unremarkable rules-wise, having tracked the standard North American DST schedule consistently since Canada aligned with the US's 2005 Energy Policy Act extension.

Offsets and DST transitions on this page are computed from the IANA time zone database bundled with your browser; the rules described above were verified against tzdata 2026b when this page was published.

Frequently asked questions

Does America/Halifax observe DST?
Yes. In the current rule it begins the 1st Sunday of November and ends the 2nd Sunday of March.
What is the UTC offset of America/Halifax in winter/summer?
America/Halifax is -04:00 on standard time and -03:00 during daylight saving time.
Which cities use America/Halifax?
Halifax, Sydney, Dartmouth, Moncton all use the America/Halifax zone — also commonly known as Atlantic Time — along with the rest of Canada.
What is the deprecated alias for this zone?
Canada/Atlantic is a deprecated backward-compatibility name for this zone. Use the canonical identifier America/Halifax in code, cron jobs, `TZ` environment variables and config files instead.