diff options
Diffstat (limited to 'node_modules/luxon/src/zones/systemZone.js')
| -rw-r--r-- | node_modules/luxon/src/zones/systemZone.js | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/node_modules/luxon/src/zones/systemZone.js b/node_modules/luxon/src/zones/systemZone.js new file mode 100644 index 0000000..533e663 --- /dev/null +++ b/node_modules/luxon/src/zones/systemZone.js @@ -0,0 +1,61 @@ +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; + } +} |
