HeadlinesBriefing favicon HeadlinesBriefing.com

BC’s permanent DST shift forces Postgres timezone rethink

Hacker News •
×

On March 8 2026 British Columbia shifted to year‑round Pacific Daylight Time, moving clocks forward to UTC‑7 and skipping the usual November rollback to UTC‑8. The IANA zone America/Vancouver now carries a fixed UTC‑7 offset. The change aims to align BC with major trading partners and simplify West Coast scheduling, exposing hidden risks in systems that store timestamps in UTC and rely on tzdata for conversion.

Postgres stores timestamptz values as UTC, applying the zone rules at insert and again at query. When BC’s rules changed, a record saved as 2026‑11‑10 10:00 ‑08:00 converted to 2026‑11‑10 18:00 +00 and later displayed as 11:00 local, an hour off. Updating the tzdata package fixes future conversions but does not retroactively adjust existing rows. Manual audits are required to locate records created before the rule change.

The recommended mitigation is a dual‑column schema: keep the user‑entered wall‑clock timestamp plus its IANA zone, and store a derived UTC column calculated by a trigger. Re‑computing UTC after a tzdata update restores correctness for future appointments. Teams should also archive the original zone data to support audit trails. For logs or sensor data where the exact instant matters, plain timestamptz remains sufficient.