Skip to content

formatInTimezone

Formats a date in a specific IANA timezone using Intl.DateTimeFormat.

Returns null if the date or timezone is invalid.

Available since v2.0.0

import { formatInTimezone } from '@helpers4/date';
formatInTimezone(date: DateLike, tz: string, options: FormatInTimezoneOptions): string | null
ParameterTypeDescription
dateDateLikeThe date to format
tzstringIANA timezone identifier (e.g. 'Asia/Tokyo')
optionsFormatInTimezoneOptionsOptional locale and format configuration

string | null — A formatted date string, or null

formatInTimezone('2025-01-19T12:00:00Z', 'Asia/Tokyo')
// => "1/19/2025, 9:00:00 PM" (en-US default)

formatInTimezone('2025-01-19T12:00:00Z', 'Europe/Paris', {
  locale: 'fr-FR',
  formatOptions: { dateStyle: 'long', timeStyle: 'short' },
})
// => "19 janvier 2025, 13:00"

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