@phensley/timezone
Compact timezone library provides the full range of tzdb data. https://data.iana.org/time-zones/tz-link.html
Installation
NPM:
npm install --save @phensley/timezone
Yarn:
yarn add @phensley/timezone
Examples
Resolve old timezone ids that are deprecated.
import { TZ } from '@phensley/timezone';
const id = TZ.resolveId('Pacific/Samoa');
console.log(id);
Pacific/Pago_Pago
Lookup the zone info for a timezone id at a given UTC time.
Timezone offsets are in milliseconds.
const ZONES = [
'UTC',
'Pacific/Samoa',
'America/New_York',
'Pacific/Pago_Pago',
'Asia/Tokyo',
'Europe/Paris',
];
const now = new Date(2020, 2, 18, 12, 30, 0).getTime();
for (const zoneid of ZONES) {
const info = TZ.fromUTC(zoneid, now);
console.log(`${zoneid.padEnd(18)} -> ${JSON.stringify(info)}`);
}
UTC -> {"abbr":"UTC","dst":0,"offset":0,"zoneid":"Etc/UTC"}
Pacific/Samoa -> {"abbr":"SST","dst":0,"offset":-39600000,"zoneid":"Pacific/Pago_Pago"}
America/New_York -> {"abbr":"EDT","dst":1,"offset":-14400000,"zoneid":"America/New_York"}
Pacific/Pago_Pago -> {"abbr":"SST","dst":0,"offset":-39600000,"zoneid":"Pacific/Pago_Pago"}
Asia/Tokyo -> {"abbr":"JST","dst":0,"offset":32400000,"zoneid":"Asia/Tokyo"}
Europe/Paris -> {"abbr":"CET","dst":0,"offset":3600000,"zoneid":"Europe/Paris"}
Lookup the zone info for a timezone id and a local "wall clock" timestamp.
Returns the corresponding UTC timestamp along with a zone info record.
const epoch = 1583633400000;
const zoneid = 'America/New_York';
const [utc, info] = TZ.fromUTC(zoneid, now)!;
console.log(utc);
console.log(JSON.stringify(info));
1583651400000
{"abbr":"EDT","dst":1,"offset":-14400000,"zoneid":"America/New_York"}