Skip to content

getTimezoneOffset

Returns the UTC offset in minutes for the given IANA timezone at a specific point in time.

A positive value means the timezone is ahead of UTC (e.g. +60 for CET). Returns null if the timezone is invalid or the date cannot be parsed.

The implementation uses Intl.DateTimeFormat to extract the local representation in the target timezone, then computes the delta from UTC.

Available since v2.0.0

import { getTimezoneOffset } from '@helpers4/date';
// or, from the all-in-one package (same code, one install):
import { getTimezoneOffset } from 'helpers4/date';
getTimezoneOffset(tz: string, date: DateLike): number | null
ParameterTypeDescription
tzstringIANA timezone identifier (e.g. `‘America/New_York’`)
dateDateLikeReference date (defaults to now)

number | null — Offset in minutes, or null if inputs are invalid

getTimezoneOffset('America/New_York', '2025-01-19T12:00:00Z') // => -300 (EST)
getTimezoneOffset('Europe/Paris', '2025-07-19T12:00:00Z')     // => 120  (CEST)

Options for formatInTimezone.

interface FormatInTimezoneOptions {
  formatOptions?: DateTimeFormatOptions;
  locale?: string;
}

A value that can be converted to a Date.

  • Date — used as-is (validated for Invalid Date)
  • number — treated as a timestamp (seconds or milliseconds, auto-detected); 0 is treated as invalid and produces null in ensureDate
  • string — parsed via new Date(string)
  • Temporal.Instant | Temporal.ZonedDateTime — read via their epochMilliseconds property
type DateLike = Date | number | string | Temporal.Instant | Temporal.ZonedDateTime

View source on GitHub