/** * Current UTC offset in hours for an IANA timezone, using the environment's * locale rules (accounts for DST at `reference`, default "now"). */ export function getIANATimezoneOffsetHours( ianaTimezone: string, reference: Date = new Date() ): number { const utcDate = new Date(reference.toLocaleString("en-US", { timeZone: "UTC" })); const tzDate = new Date( reference.toLocaleString("en-US", { timeZone: ianaTimezone }) ); return (tzDate.getTime() - utcDate.getTime()) / 3600000; }