JavaScript-Datum für eine bestimmte Zeitzone initialisieren

Harshit Jindal 12 Oktober 2023
  1. Verwenden Sie die Methoden Intl.DateTimeFormat und format(), um das JavaScript-Datum auf eine bestimmte Zeitzone zu initialisieren
  2. Verwenden Sie die Methode toLocaleString(), um das JavaScript-Datum auf eine bestimmte Zeitzone zu initialisieren
JavaScript-Datum für eine bestimmte Zeitzone initialisieren

In diesem Tutorial erfahren Sie, wie Sie das JavaScript-Datum für eine bestimmte Zeitzone initialisieren.

Das Datumsobjekt von JavaScript arbeitet intern mit UTC, zeigt die Ausgabe jedoch entsprechend der lokalen Zeit des Betriebscomputers an. Das Datumsobjekt hat keine Vorstellung von Zeitzonen. Es sind keine String-Objekte deklariert. Es ist nur ein Maß für die Anzahl der Millisekunden, die seit 1970-01-01 00:00:00 UTC vergangen sind. Diese berücksichtigt bei der Ausgabe der Uhrzeit automatisch die lokale Zeitzone des Rechners und gilt für die interne Darstellung. Es funktioniert nicht mit verschiedenen Zeitzonen. Daher benötigen wir die Hilfe von Funktionen und externen Bibliotheken, um solche Operationen durchzuführen.

Verwenden Sie die Methoden Intl.DateTimeFormat und format(), um das JavaScript-Datum auf eine bestimmte Zeitzone zu initialisieren

Das JavaScript Intl-Objekt ist die Hilfe für die JavaScript Internationalization API. Es stellt uns viele Funktionen zur Konvertierung von Datum/Uhrzeit, Zeichenketten und Zahlen zur Verfügung. Das Intl-Objekt verwendet das DateTimeFormat, um Datum-Uhrzeit-Strings zu formatieren. Dies hat eine format-Methode, die das Datum nimmt und es in eine andere Zeitzone konvertiert, wobei das Gebietsschema und die Optionen verwendet werden, die dem Formatierer als Argument zur Verfügung gestellt werden. Diese Methode formatiert das Datum in die erforderliche Zeitzone und konvertiert es in eine Zeichenkette.

Der Parameter der Funktion format() ist das Datum. Für die Bildung des Objekts Intl.DateTimeFormat benötigen wir folgende Argumente:

  1. locales: Es ist ein Array von Strings, die Sprach- und Gebietsschema-Tags enthalten. Normalerweise ist es ein optionaler Parameter, aber für unseren Zweck ist er notwendig. Um die Zeitzone zu ändern, können wir einfach den BCP-Sprachcode und die erforderliche Zeitzone angeben.
  2. Optionen: Es ist ein Objekt, das verwendet wird, um Eigenschaften anzugeben, um Vergleiche durchzuführen. Es ist auch ein optionaler Parameter, der verwendet werden kann, um den Stil und die Anzeigeeinheiten anzugeben. Einige der Eigenschaften sind second, minute, hour, day, month und year usw.

Zum Beispiel: Wir können ein Optionsobjekt wie { hour: 'numeric', hour12: false, minute: 'numeric', timeZoneName: 'short'} übergeben.

function changeTimezone() {
  let date = new Date(Date.UTC(2021, 5, 28, 3, 0, 0));
  console.log('Date in India: ' + date);
  let formatter =
      new Intl.DateTimeFormat('en-US', {timeZone: 'America/Denver'});
  let usDate = formatter.format(date);
  console.log('Date in USA: ' + usDate);
}

Ausgabe

Date in India: Mon Jun 28 2021 08:30:00 GMT+0530 (India Standard Time)
VM1504:7 Date in USA: 6/27/2021

In der obigen Funktion erstellen wir zunächst ein Date-Objekt mit dem Konstruktor Date(). Dann erstellen wir einen Formatierer mit Intl.DateTimeFormat und geben das Gebietsschema an, dh das BCP-Sprach-Tag und die timeZone, in die wir konvertieren möchten. Wir verwenden dann diesen Formatierer, um das Datum in die erforderliche Zeitzone zu konvertieren.

Verwenden Sie die Methode toLocaleString(), um das JavaScript-Datum auf eine bestimmte Zeitzone zu initialisieren

Die Methode toLocaleString() wird am häufigsten zum Ändern der Zeitzone verwendet, da sie einfacher zu verwenden ist und direkt an einem Datum aufgerufen werden kann. Es funktioniert genauso wie das Intl.DateTimeFormat . Es nimmt auch den Locale-String und die Optionen als Argumente und gibt einen String mit entsprechend formatierten Datumsangaben zurück. Der Vorteil dieser Methode besteht darin, dass im Gegensatz zur obigen Methode die Zeit entsprechend der Zeitzone des Landes konvertiert und im String zurückgegeben wird.

function changeTimezone() {
  let date = new Date(Date.UTC(2021, 5, 28, 3, 0, 0));
  console.log('Date in India: ' + date);
  let usDate = date.toLocaleString('en-US', {timeZone: 'America/New_York'});
  console.log('Date in USA: ' + usDate);
}

Ausgabe

Date in India: Mon Jun 28 2021 08:30:00 GMT+0530 (India Standard Time)
Date in USA: 6/27/2021, 11:00:00 PM

In der obigen Funktion erstellen wir zunächst ein Date-Objekt mit dem Konstruktor Date(). Wir rufen die Funktion toLocaleString für das Datum auf, das das Sprach-Tag und die timeZone angibt, und lassen Datum/Uhrzeit in eine andere Zeitzone umrechnen.

Harshit Jindal avatar Harshit Jindal avatar

Harshit Jindal has done his Bachelors in Computer Science Engineering(2021) from DTU. He has always been a problem solver and now turned that into his profession. Currently working at M365 Cloud Security team(Torus) on Cloud Security Services and Datacenter Buildout Automation.

LinkedIn

Verwandter Artikel - JavaScript DateTime