Timezone
Work with timezones, get timezone information, and convert between timezones.
Getting Timezone Information
Section titled “Getting Timezone Information”timezone()
Section titled “timezone()”Get the current system timezone:
const date = daytime('2025-11-15T14:30:45Z')date.timezone()// "Asia/Jakarta" (or your system timezone)timezoneOffset()
Section titled “timezoneOffset()”Get the timezone offset in minutes:
const date = daytime('2025-11-15T14:30:45Z')date.timezoneOffset()// 420 (minutes, UTC+7)utcOffset()
Section titled “utcOffset()”Get the UTC offset in minutes (alias for timezoneOffset):
const date = daytime('2025-11-15T14:30:45Z')date.utcOffset()// 420 (minutes)Timezone Checks
Section titled “Timezone Checks”isUTC()
Section titled “isUTC()”Check if date is in UTC timezone:
daytime().isUTC()// false (unless system is UTC)isDST()
Section titled “isDST()”Check if date is in daylight saving time:
daytime('2025-07-15').isDST()// depends on timezone
daytime('2025-01-15').isDST()// depends on timezoneTimezone Conversions
Section titled “Timezone Conversions”toUTC()
Section titled “toUTC()”Convert to UTC timezone. Creates a date with UTC components:
const date = daytime('2025-11-15T14:30:45')// Local time 14:30
const utcDate = date.toUTC()// Creates date with UTC-equivalent components
console.log(date.format('YYYY-MM-DD HH:mm:ss Z'))// "2025-11-15 14:30:45 +07:00"
console.log(utcDate.format('YYYY-MM-DD HH:mm:ss Z'))// "2025-11-15 14:30:45 +07:00"// Note: format('Z') always shows system timezone offsetlocal()
Section titled “local()”Convert to local timezone:
const date = daytime('2025-11-15T14:30:45Z')const localDate = date.local()
console.log(localDate.format('YYYY-MM-DD HH:mm:ss Z'))// "2025-11-15 21:30:45 +07:00"// UTC 14:30 converted to local time (UTC+7) = 21:30toTimezone()
Section titled “toTimezone()”Convert to a specific timezone using IANA timezone names:
const date = daytime('2025-11-15T14:30:45')// Local time 14:30
// Convert to America/New_Yorkconst nyDate = date.toTimezone('America/New_York')console.log(nyDate.hour())// 9 (EST time equivalent)
console.log(nyDate.format('YYYY-MM-DD HH:mm:ss Z'))// "2025-11-15 09:30:45 +07:00"// Note: format('Z') shows system timezone, but hour() shows converted time
// Convert to Asia/Tokyoconst tokyoDate = date.toTimezone('Asia/Tokyo')console.log(tokyoDate.hour())// 23 (JST time equivalent)Formatting with Timezone
Section titled “Formatting with Timezone”Use format tokens to display timezone information:
const date = daytime('2025-11-15T14:30:45Z')
// Timezone with colondate.format('Z')// "+07:00"
// Timezone without colondate.format('ZZ')// "+0700"
// Full date with timezonedate.format('YYYY-MM-DD HH:mm:ss Z')// "2025-11-15 21:30:45 +07:00"Examples
Section titled “Examples”Get Timezone Info
Section titled “Get Timezone Info”function getTimezoneInfo(date: Daytime) { return { timezone: date.timezone(), offset: date.timezoneOffset(), offsetHours: Math.floor(date.timezoneOffset() / 60), isUTC: date.isUTC(), isDST: date.isDST(), formatted: date.format('Z') }}
const info = getTimezoneInfo(daytime())console.log(info)// {// timezone: "Asia/Jakarta",// offset: 420,// offsetHours: 7,// isUTC: false,// isDST: false,// formatted: "+07:00"// }Convert to Multiple Timezones
Section titled “Convert to Multiple Timezones”function convertToTimezones(date: Daytime, timezones: string[]) { return timezones.map(tz => ({ timezone: tz, date: date.toTimezone(tz), formatted: date.toTimezone(tz).format('YYYY-MM-DD HH:mm:ss Z') }))}
const date = daytime('2025-11-15T14:30:45')const converted = convertToTimezones(date, [ 'UTC', 'America/New_York', 'Asia/Tokyo', 'Europe/London'])converted.forEach(item => { console.log(`${item.timezone}: hour=${item.date.hour()}, ${item.formatted}`) // Shows converted hour values and formatted strings // Note: format('Z') always shows system timezone})Check DST Period
Section titled “Check DST Period”function isDSTPeriod(date: Daytime): boolean { return date.isDST()}
const summer = daytime('2025-07-15')console.log('Summer DST:', isDSTPeriod(summer))// Summer DST: true
const winter = daytime('2025-01-15')console.log('Winter DST:', isDSTPeriod(winter))// Winter DST: false