Der Browser-Speicher localStorage ist nicht verfügbar. Entweder unterstützt dein Browser ihn nicht oder du hast ihn deaktiviert oder er ist voll. Ohne localStorage werden deine Lösungen nicht gespeichert.
Weltzeit
Wenn man mit Datum und Uhrzeit arbeitet, muss man zwischen
koordinierter Weltzeit (UTC, engl. Coordinated Universal Time) und
Zonenzeit unterscheiden.
Die koordinierte Weltzeit stellt weltweit eine einheitliche Zeitangabe her.
Die Zonenzeit ist die in einer Zeitzone geltende Zeit.
Von der koordinierten Weltzeit werden die verschiedenen Zonenzeiten abgeleitet.
So ergibt sich die Mitteleuropäische Zeit (MEZ)
aus der koordinierten Weltzeit durch Addition von einer Stunde (kurz UTC+1). Die Mitteleuropäische Sommerzeit (MESZ) entspricht
UTC+2. UTC selbst ist die Zonenzeit der Westeuropäischen Zeit (WEZ).
Was wir bisher über das Date-Objekt gelernt haben, bezog sich meist auf die Zonenzeit. So liefert der Ausdruck
Was wir bisher über das Date-Objekt gelernt haben, bezog sich meist auf die Zonenzeit. So liefert der Ausdruck
new Date(2018, 4, 5)
ein Date-Objekt, das dem Zeitpunkt 5.5.2018, 0:00 Uhr in lokaler Zeit entspricht.
Macht man diesen Aufruf in Deutschland, erhält man den 5.5.2018, 0:00 UTC+2 (Sommerzeit). In Japan liefert derselbe Aufruf
den 5.5.2018, 0:00 UTC+9. Zwischen beiden Zeitpunkten liegt eine Differenz von 7 Stunden.
Möchte man weltweit einen einheitlichen Zeitpunkt erzeugen, so muss man die koordinierte Weltzeit verwenden. Leider kann man nicht
direkt ein Date aus den UTC-Daten erzeugen. Man muss einen Umweg über die Millisekunden seit dem 1.1.1970 machen:
let millis = Date.UTC(2018, 4, 5);
let datum = new Date(millis);
Mit Date.UTC()
erhält man zunächst die vergangenen Millisekunden seit dem 1.1.1970, 0:00 UTC.
Mit dieser Zahl und new Date()
erzeugt man anschließend das gewünschte Date-Objekt.
Der Konstruktor-Aufruf mit den Millisekunden als Parameter bezieht sich nämlich auch auf den 1.1.1970, 0:00 UTC.
Die Variable datum
repräsentiert den 5.5.2018, 0:00 UTC. Date.UTC()
kann analog zu new Date()
mit bis zu sieben Parametern
(Jahr, Monat, Tag, Stunden, Minuten, Sekunden und Millisekunden) aufgerufen werden. Es gelten dieselben Regeln wie bei new Date()
:
Bei Jahreszahlen zwischen 0 und 99 wird 1900 hinzuaddiert und die Monate werden beginnend mit 0 durchnummeriert.Aufgabe
Schreibe eine Funktion
Beispiel:
nikolausUTC
, die eine Jahresangabe als Zahl entgegennimmt und die ein
Date-Objekt mit dem 6. Dezember des übergebenen Jahres, 0:00 UTC, zurückgibt.Beispiel:
nikolaus(2017)
sollte ein Date-Objekt mit dem Zeitpunkt 6.12.2017, 0:00 UTC zurückgeben.