summaryrefslogtreecommitdiff
path: root/node_modules/luxon/src/zones/systemZone.js
diff options
context:
space:
mode:
authorShipwreckt <me@shipwreckt.co.uk>2025-10-31 20:02:14 +0000
committerShipwreckt <me@shipwreckt.co.uk>2025-10-31 20:02:14 +0000
commit7a52ddeba2a68388b544f529d2d92104420f77b0 (patch)
tree15ddd47457a2cb4a96060747437d36474e4f6b4e /node_modules/luxon/src/zones/systemZone.js
parent53d6ae2b5568437afa5e4995580a3fb679b7b91b (diff)
Changed from static to 11ty!
Diffstat (limited to 'node_modules/luxon/src/zones/systemZone.js')
-rw-r--r--node_modules/luxon/src/zones/systemZone.js61
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;
+ }
+}