UNPKG

@burglekitt/gmt

Version:

Temporal-based date and time utilities with timezone support and polyfill integration

37 lines (36 loc) 1.68 kB
/** * A single DST transition instant, with the UTC offset in effect immediately * before and after the change. */ export interface DstTransition { instant: string; offsetBefore: string; offsetAfter: string; } /** * List every DST transition instant for an IANA timezone within a given year. * * - A "transition" is any UTC offset change: a spring-forward gap (nonexistent * local time) or a fall-back overlap (ambiguous local time) — see * `docs/dst-disambiguation.md` for the gap/overlap terminology. This is * distinct from `hasDaylightSaving` (whether a zone observes DST at all) * and from the `disambiguation`/`offset` options (what to do when * constructing a single instant that lands in a gap/overlap). * - Most zones have 0 or 2 transitions per year; some (e.g. `Africa/Casablanca`, * which pauses DST for Ramadan) can have more. * - Returns `[]` for an invalid timeZone, a non-integer year, or a valid zone * with zero transitions in that year (not an error case). * * @param timeZone IANA timeZone identifier * @param year calendar year to scan (must be an integer) * @returns array of `{ instant, offsetBefore, offsetAfter }`, in chronological order * * @example getDstTransitions("America/New_York", 2024) * // [ * // { instant: "2024-03-10T07:00:00Z", offsetBefore: "-05:00", offsetAfter: "-04:00" }, * // { instant: "2024-11-03T06:00:00Z", offsetBefore: "-04:00", offsetAfter: "-05:00" }, * // ] * @example getDstTransitions("Asia/Tokyo", 2024) // [] * @example getDstTransitions("Invalid/Zone", 2024) // [] */ export declare function getDstTransitions(timeZone: string, year: number): DstTransition[];