Skip to content

isValidTimeZone

isValidTimeZone(timeZone: string): boolean

Validate whether a string is a valid time zone identifier: an IANA name or a UTC offset.

  • Uses Temporal.ZonedDateTime.from to test timezone validity.
  • Uses the timeZoneLike regex to check the identifier’s shape: Temporal’s TimeZoneIdentifier grammar (§13.31).
  • Accepts every IANA Zone and Link name the runtime accepts, including single-component names (UTC, Japan, Zulu, EST5EDT, GMT+0), in any letter case (ECMA-402 matches identifiers ASCII-case-insensitively, so utc is as valid as america/new_york).
  • Accepts an offset identifier (UTCOffset[~SubMinutePrecision]): "+05:00", "+0530", "-08", hour 00–23, no seconds. Temporal and Intl.DateTimeFormat accept the same ones.
  • Returns false for invalid timezone formats.
  • Compatibility: earlier releases required a / in every name except UTC and GMT. To keep that narrower rule, also require timeZone.includes("/") or "UTC"/"GMT".
  • A stored offset with seconds (-00:44:30) is false here and true for isValidUtcOffset. To check what a function with a zoneless result accepts, use isValidTimeZone(x) || isValidUtcOffset(x).
ParameterTypeDescription
timeZonestringtimeZone identifier to validate

boolean indicating validity

import { isValidTimeZone } from "@northguild/gmt/zoned/validate";
isValidTimeZone("America/New_York") // true
output 

zoned/validate/isValidTimeZone.ts