2.10) Datum und Zeit

Die Objekte für Zeit und Datum sind unveränderlich. Wird z.B. der Tag eines Datums verändert, entsteht dabei ein neues Objekt.
Zudem bieten diese Objekte einige Funktionen, die sie auch sonst den atomaren Typen ähnlich machen.

Datum

Ein Datum-Objekt wird mit dem Objekt-Typ "Date" erzeugt. Dies kann mit oder ohne Parameter erfolgen:

Date     # Das heutige Datum
Date() # Dies ist identisch mit der Zeile davor
Date(2020,3,1) # Objekt für den 1.3.2020

# Mit einem String können verschiedene Formate übergeben werden
Date("01.03.2020")
Date("2020-03-01")

Auslesen einzelner Werte:

Date.getDay
Date.getMonth
Date.getYear

Da mathematische Zeichen in JM° auch nur Funktionen sind, wenn auch mit anderer Priorität, ist nun folgendes möglich:

(Date+5).print    # Gibt das Datum von heute plus 5 Tage aus
d = Date-2 # Die Variable 'd' enthält nun das Datum von vorgestern
Date >= Date(2021,1,1) # Prüft, ob das heutige Datum größer oder gleich dem 1.1.2021 ist

Zudem existieren natürlich auch alphanumerische Funktionen:

Date.addMonth(3)     # Erzeugt ein neues Objekt von Heute plus 3 Monaten
Date.setYear(2035) # Erzeugt ein neues Objekt mit heutigem Tag und Monat und dem Jahr 2035

Weitere Funktionen sind in der Referenz aufgelistet.

Zeit

Für eine Uhrzeit wird das Objekt "Time" verwendet:

Time    # Objekt für die aktuelle Uhrzeit
Time(12,34,56) # Objekt für 12:34:56 Uhr

Das Auslesen erfolgt ähnlich zu Date sehr direkt und einfach:

Time.getHours
Time.getMinutes
Time.getSeconds

Ansonsten wird ein Time-Objekt ähnlich wie Date oder DateTime verwendet.

Zeitpunkt

Um einen Zeitpunkt zu speichern existiert der Typ DateTime:

DateTime    # Objekt für den aktuellen Zeitpunkt
DateTime(2020,1,21,11,22,33) # Zeitpunkt für den 21.01.2020, 11:22:33 Uhr

Hier ist es auch möglich, nur mit Datum oder Uhrzeit weiter zu arbeiten:

DateTime.getDate     # Gibt ein Date-Objekt zurück
DateTime.getTime # Gibt ein Time-Objekt zurück

Das Auslesen der einzelnen Werte erfolgt auch über die jeweilige Funktion:

.getYear
.getMonth
.getDay
.getHour
.getMinutes
.getSeconds

Formatierte Ausgabe

Zum Formatieren von Date, Time und DateTime wird die Funktion ".format" verwendet. Als Format wird hier ein String verwendet, bei dem verschiedene Zeichen ersetzt werden.

Info:
Großbuchstaben stehen für Datum-Werte (Tag, Monat, ...), Kleinbuchstaben für Zeit-Werte (Stunde, Minute, ...)

 

ZeichenAttributLängeBeispiel
Y Jahr 4 2020
YY Jahr 2 20
YYYY Jahr 4 2020
M Monat 1-2 1
MM Monat 2 01
D Tag 1-2 5
DD Tag 2 05
hh Stunden 2 08
h Stunden 1-2 8
mm Minuten 2 09
m Minuten 1-2 9
ss Sekunden 2 07
s Sekunden 1-2 7

 

Um zu verhindert dass ein Zeichen ersetzt wird, fügen wir direkt davor eine Tilde ein:

Date.add(1).format("~Morgen ist der: DD.MM.").print