UNPKG

datezone

Version:

A lightweight and comprehensive date and timeZone utility library for JavaScript.

225 lines 5.44 kB
// UTC Timezones - single source of truth const UTC_TIMEZONE_NAMES = [ "Africa/Abidjan", "Africa/Accra", "Africa/Bamako", "Africa/Banjul", "Africa/Bissau", "Africa/Conakry", "Africa/Dakar", "Africa/Freetown", "Africa/Lome", "Africa/Monrovia", "Africa/Nouakchott", "Africa/Ouagadougou", "Africa/Sao_Tome", "America/Danmarkshavn", "Atlantic/Reykjavik", "Atlantic/St_Helena", "Etc/GMT", "Etc/GMT-0", "Etc/GMT+0", "Etc/GMT0", "Etc/Greenwich", "Etc/UCT", "Etc/Universal", "Etc/UTC", "Etc/Zulu", "GMT", "GMT-0", "GMT+0", "GMT0", "Greenwich", "UCT", "UTC", "Universal", "Zulu", ]; // DST Timezones - single source of truth const DST_TIMEZONE_NAMES = [ "America/Adak", "America/Anchorage", "America/Asuncion", "America/Bahia_Banderas", "America/Boise", "America/Cambridge_Bay", "America/Campo_Grande", "America/Cancun", "America/Chicago", "America/Chihuahua", "America/Cuiaba", "America/Denver", "America/Detroit", "America/Edmonton", "America/Glace_Bay", "America/Godthab", "America/Goose_Bay", "America/Grand_Turk", "America/Halifax", "America/Havana", "America/Indiana/Indianapolis", "America/Indiana/Knox", "America/Indiana/Marengo", "America/Indiana/Petersburg", "America/Indiana/Tell_City", "America/Indiana/Vevay", "America/Indiana/Vincennes", "America/Indiana/Winamac", "America/Inuvik", "America/Iqaluit", "America/Juneau", "America/Kentucky/Louisville", "America/Kentucky/Monticello", "America/Los_Angeles", "America/Matamoros", "America/Mazatlan", "America/Menominee", "America/Merida", "America/Metlakatla", "America/Mexico_City", "America/Miquelon", "America/Moncton", "America/Monterrey", "America/Montevideo", "America/Nassau", "America/New_York", "America/Nome", "America/North_Dakota/Beulah", "America/North_Dakota/Center", "America/North_Dakota/New_Salem", "America/Ojinaga", "America/Pangnirtung", "America/Port-au-Prince", "America/Rainy_River", "America/Rankin_Inlet", "America/Resolute", "America/Santiago", "America/Sao_Paulo", "America/Scoresbysund", "America/Sitka", "America/St_Johns", "America/Tijuana", "America/Toronto", "America/Vancouver", "America/Whitehorse", "America/Winnipeg", "America/Yakutat", "Antarctica/Macquarie", "Antarctica/Troll", "Asia/Amman", "Asia/Beirut", "Asia/Damascus", "Asia/Famagusta", "Asia/Gaza", "Asia/Hebron", "Asia/Jerusalem", "Asia/Nicosia", "Asia/Tehran", "Atlantic/Azores", "Atlantic/Bermuda", "Atlantic/Canary", "Atlantic/Faroe", "Atlantic/Madeira", "Australia/Adelaide", "Australia/Broken_Hill", "Australia/Currie", "Australia/Hobart", "Australia/Lord_Howe", "Australia/Melbourne", "Australia/Sydney", "Europe/Amsterdam", "Europe/Andorra", "Europe/Astrakhan", "Europe/Athens", "Europe/Belgrade", "Europe/Berlin", "Europe/Bratislava", "Europe/Brussels", "Europe/Bucharest", "Europe/Budapest", "Europe/Busingen", "Europe/Chisinau", "Europe/Copenhagen", "Europe/Dublin", "Europe/Gibraltar", "Europe/Guernsey", "Europe/Helsinki", "Europe/Isle_of_Man", "Europe/Jersey", "Europe/Kaliningrad", "Europe/Kiev", "Europe/Kirov", "Europe/Lisbon", "Europe/Ljubljana", "Europe/London", "Europe/Luxembourg", "Europe/Madrid", "Europe/Malta", "Europe/Mariehamn", "Europe/Monaco", "Europe/Oslo", "Europe/Paris", "Europe/Podgorica", "Europe/Prague", "Europe/Riga", "Europe/Rome", "Europe/Samara", "Europe/San_Marino", "Europe/Sarajevo", "Europe/Saratov", "Europe/Simferopol", "Europe/Skopje", "Europe/Sofia", "Europe/Stockholm", "Europe/Tallinn", "Europe/Tirane", "Europe/Ulyanovsk", "Europe/Vaduz", "Europe/Vienna", "Europe/Vilnius", "Europe/Volgograd", "Europe/Warsaw", "Europe/Zagreb", "Europe/Zurich", "Pacific/Auckland", "Pacific/Chatham", "Pacific/Easter", "Pacific/Fiji", "Pacific/Norfolk", "US/Alaska", "US/Aleutian", "US/Central", "US/Eastern", "US/Mountain", "US/Pacific", ]; // Create Sets for O(1) lookup performance const UTC_TIMEZONES = new Set(UTC_TIMEZONE_NAMES); const DST_TIMEZONES = new Set(DST_TIMEZONE_NAMES); /** * Checks if utc. * * @param timeZone - The IANA timeZone identifier to check * @returns `true` if the timeZone is UTC, `false` otherwise * @see https://datezone.dev/docs/reference/timezone#isutc */ export function isUTC(timeZone) { return UTC_TIMEZONES.has(timeZone); } /** * Checks if dst. * * @param timeZone - The IANA timeZone identifier to check * @returns `true` if the timeZone is a DST timeZone, `false` otherwise. * @see https://datezone.dev/docs/reference/timezone#isdst */ export function isDST(timeZone) { return DST_TIMEZONES.has(timeZone); } /** * Get local timezone. * * @see https://datezone.dev/docs/reference/timezone#getlocaltimezone */ export const getLocalTimezone = () => Intl.DateTimeFormat().resolvedOptions().timeZone; //# sourceMappingURL=timezone.pub.js.map