Interactive publication
Back to the catalogueOffsetsCase 02 of 03
Half-hour offset zones
India (+5:30), Sri Lanka (+5:30), central Australia ACST (+9:30), Iran (+3:30), Afghanistan (+4:30), Myanmar (+6:30), and Newfoundland (-3:30) sit a half hour off UTC. A local clock hour therefore straddles TWO UTC hour-of-week slots, so a local band (daypart, broadcast day) never maps to a whole number of slots.
Class
Case to account for
Affects
3 conversions
01
Detection
zoneOffsetMinutes % 60 !== 0.
02
Mitigation
01
Keep the canonical slot on the UTC integer hour; do not re-base it to local.
02
Express local bands as a WEIGHTED slot-set — the fraction of each hour that falls in each UTC slot (the temporal analog of the geo weighted crosswalk), or assign by majority overlap and declare which.
03
Affected conversions
Daypart (local band) ⇄ UTC slot-set
OPENBroadcast day (declared cutover) ⇄ slot-set
OPENTimestamp + zonehour-of-week slot
OPENWorked example
05:30 Asia/Kolkata = 00:00 UTC = slot 0; 06:00 IST = 00:30 UTC, which is still slot 0 but only half-covers it.
