UNPKG

luxon

Version:
62 lines (51 loc) 1.15 kB
import { formatOffset, parseZoneInfo } from "../impl/util.js"; import Zone from "../zone.js"; let singleton = null; /** * Represents the local zone for this JavaScript environment. * @implements {Zone} */ export default class SystemZone extends Zone { /** * Get a singleton instance of the local zone * @return {SystemZone} */ static get instance() { if (singleton === null) { singleton = new SystemZone(); } return singleton; } /** @override **/ get type() { return "system"; } /** @override **/ get name() { return new Intl.DateTimeFormat().resolvedOptions().timeZone; } /** @override **/ get isUniversal() { return false; } /** @override **/ offsetName(ts, { format, locale }) { return parseZoneInfo(ts, format, locale); } /** @override **/ formatOffset(ts, format) { return formatOffset(this.offset(ts), format); } /** @override **/ offset(ts) { return -new Date(ts).getTimezoneOffset(); } /** @override **/ equals(otherZone) { return otherZone.type === "system"; } /** @override **/ get isValid() { return true; } }