Timezone conversions, DST handling, and zone comparisons

Import

import { ... } from 'ts-time-utils/timezone';

Examples

Timezone Conversions

Work with dates across timezones

import { formatInTimeZone, getTimezoneOffset, convertBetweenZones } from 'ts-time-utils/timezone';

const date = new Date('2025-09-14T12:00:00Z');

// Format in specific timezone
console.log(formatInTimeZone(date, 'America/New_York'));
// Shows time in New York

console.log(formatInTimeZone(date, 'Asia/Tokyo'));
// Shows time in Tokyo

console.log(formatInTimeZone(date, 'Europe/London'));
// Shows time in London

// Get timezone offset
console.log(getTimezoneOffset('America/Los_Angeles'));
// -7 or -8 depending on DST

// Convert between zones
const converted = convertBetweenZones(date, 'UTC', 'America/New_York');
console.log(converted);

DST Detection

Detect and handle Daylight Saving Time

import { isDST, getNextDSTTransition, isValidTimeZone } from 'ts-time-utils/timezone';

// Check if timezone is valid
console.log(isValidTimeZone('America/New_York')); // true
console.log(isValidTimeZone('Invalid/Zone')); // false

// Check if date is in DST
const summer = new Date('2025-07-14');
const winter = new Date('2025-01-14');

console.log(isDST(summer, 'America/New_York')); // true
console.log(isDST(winter, 'America/New_York')); // false

// Find next DST transition
const nextTransition = getNextDSTTransition('America/New_York');
console.log(nextTransition);