Datum in das ISO-Format mit Zeitzone

JavaScriptJavaScriptBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden wir lernen, wie man ein Datum in das erweiterte ISO-Format (ISO 8601), einschließlich der Zeitzonenverschiebung, umwandelt. Wir werden die Date.prototype.getTimezoneOffset()-Methode verwenden, um die Zeitzonenverschiebung zu erhalten und umzukehren. Anschließend werden wir eine Hilfsfunktion definieren, um jede übergebene Zahl zu einem Integer zu normalisieren und mit String.prototype.padStart() auf 2 Stellen aufzurunden. Schließlich werden wir die integrierten Methoden im Date-Prototype verwenden, um den ISO 8601-String mit Zeitzonenverschiebung zu erstellen. Am Ende dieses Labs werden Sie ein besseres Verständnis dafür haben, wie man in JavaScript mit Daten umgeht.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/comp_ops("Comparison Operators") javascript/AdvancedConceptsGroup -.-> javascript/template_lit("Template Literals") subgraph Lab Skills javascript/variables -.-> lab-28451{{"Datum in das ISO-Format mit Zeitzone"}} javascript/data_types -.-> lab-28451{{"Datum in das ISO-Format mit Zeitzone"}} javascript/arith_ops -.-> lab-28451{{"Datum in das ISO-Format mit Zeitzone"}} javascript/comp_ops -.-> lab-28451{{"Datum in das ISO-Format mit Zeitzone"}} javascript/template_lit -.-> lab-28451{{"Datum in das ISO-Format mit Zeitzone"}} end

Datum in das ISO-Format mit Zeitzone umwandeln

Um ein Datum in das erweiterte ISO-Format (ISO 8601), einschließlich der Zeitzonenverschiebung, umzuwandeln, folgen Sie diesen Schritten:

  1. Öffnen Sie das Terminal/SSH und geben Sie node ein, um zu beginnen zu codieren.
  2. Verwenden Sie Date.prototype.getTimezoneOffset(), um die Zeitzonenverschiebung zu erhalten und umzukehren. Speichern Sie das Vorzeichen in diff.
  3. Definieren Sie eine Hilfsfunktion, pad(), die jede übergebene Zahl mit Math.floor() und Math.abs() zu einem Integer normalisiert und mit String.prototype.padStart() auf 2 Stellen aufrundet.
  4. Verwenden Sie pad() und die integrierten Methoden im Date-Prototype, um den ISO 8601-String mit Zeitzonenverschiebung zu erstellen.

Hier ist der Code, den Sie verwenden können:

const toISOStringWithTimezone = (date) => {
  const tzOffset = -date.getTimezoneOffset();
  const diff = tzOffset >= 0 ? "+" : "-";
  const pad = (n) => `${Math.floor(Math.abs(n))}`.padStart(2, "0");
  return (
    date.getFullYear() +
    "-" +
    pad(date.getMonth() + 1) +
    "-" +
    pad(date.getDate()) +
    "T" +
    pad(date.getHours()) +
    ":" +
    pad(date.getMinutes()) +
    ":" +
    pad(date.getSeconds()) +
    diff +
    pad(tzOffset / 60) +
    ":" +
    pad(tzOffset % 60)
  );
};

Verwenden Sie die Funktion toISOStringWithTimezone() mit einem new Date()-Objekt als Argument, um das Datum im ISO-Format mit Zeitzonenverschiebung zu erhalten. Beispiel:

toISOStringWithTimezone(new Date()); // '2020-10-06T20:43:33-04:00'

Zusammenfassung

Herzlichen Glückwunsch! Sie haben das Lab "Datum in das ISO-Format mit Zeitzone" abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.