Date (Objekt)
Name
Date - Datum und Uhrzeit
Beschreibung
Ein Datum ist eine natürliche Zahl die ein Datum repräsentiert. Das Datum wird in Millisekunden seit dem 1. Januar 1970 um 00:00:00 Uhr GMT angegeben, der sog. UNIX-Time. Ein Datum vor dem 1. Januar 1970 wird mit einem Negativen Wert angegeben. Das Date-Objekt hat einen Zahlenvorrat von 64 bit, was einem Zahlenraum von -9223372036854775808
- 9223372036854775807
entspricht. Damit lassen sich Daten bis ins Jahr 292278994 beschreiben, was wohl für die nächste Zeit ausreichen wird.
Das Reduzieren des Datums auf einen Zahlenwert vereinfacht den Umgang von Daten bei Berechnungen und Sortierungen. Zur Darstellung ist diese Form allerdings nicht geeignet, daher können aus dem Zahlenwert beliebige Datumsformate - beispielsweise bei der Ausgabe mit sp:print erzeugt werden.
Beim Umgang mit einem Datum in Millisekunden ist unter Umständen auch die Zeitzone zu berücksichtigen. Die Millisekunden beziehen sich immer auf die Zeitzone GMT. Dies hat den Vorteil, das überall in der Welt dieses Datum und diese Uhrzeit eindeutig sind. Möchte man die lokale Entsprechung des Datums ausgeben kann das locale
-Attribut von sp:print verwendet werden.
Innerhalb des IES bzw. der SPML ist eine Zahl eine Zeichenkette, die sich als Zahl interpretieren lässt. Dadurch können alle Methoden des Objektes String auch auf die Zahlen angewandt werden, z.B. size
.
Da die Manipulation von Daten in dieser Form relativ komplex ist, bietet der IES Methoden, die basierend auf das angegebene Datum, ein neues Datum bzw. einen Wert eines Datum zurückliefern.
Ein Datum wird dafür als Kalender-Objekt interpretiert und verfügt dann über folgende Felder:
system.constants.YEAR
system.constants.MONTH
system.constants.WEEK
bzw.system.constants.DAY_OF_YEAR
system.constants.WEEK_OF_MONTH
system.constants.DAY
bzw.system.constants.DAY_OF_MONTH
system.constants.DAY_OF_YEAR
system.constants.DAY_OF_WEEK
system.constants.HOUR
system.constants.MINUTE
system.constants.SECOND
system.constants.MILLISECOND
Alternativ stehen zur Berechnung von Datums-Werten auch noch einige statische Kalender Funktionen zur Verfügung.
Methoden
Methode | Rückgabewert | Beschreibung | ab IES Version |
---|---|---|---|
dateAdd
|
Date | Ändert den Wert des angegebenes Feldes um den übergebenen Zahl (positiv oder negativ) | 2.0.4 |
dateSet
|
Date | Setzt ein angegebenes Feld auf einen bestimmten Wert | 2.0.4 |
dateGet
|
Number | Liefert den Wert des angegebenen Feldes zurück | 2.0.4 |
dateFormat
|
String | Gibt eine formatiertes Datum zurück | 2.0.4 |
dateAdd
- Ändert den Wert des angegebenes Feldes um den übergebenen Zahl (positiv oder negativ).
- Parameter
-
field
- Angabe Feldes, das inkrementiert bzw. bei negativen Zahlen dekrementiert werden soll. Dabei wird das Feld über die Werte aus System-Konstanten angegeben (z.B.
${system.constants.MONTH}
). amount
- Eine Zahl, um die das Feld des Datums inkrementiert, bzw. bei negativen Zahlen dekrementiert werden soll. Wird dabei der Gültigkeitswert überschritten (z.B. bei Stunden die 24), so wird das folgende Feld entsprechend erhöht (hier würde der Wert für Tag um 1 erhöht). Die Regeln für Monate und Schaltjahre werde automatisch berücksichtigt.
- Rückgabewert
-
- Date
- Zurückgegeben wird ein neues, entsprechend verändertes Datum.
dateSet
- Setzt den Wert des angegebenes Feldes auf die übergebene Zahl.
- Parameter
-
field
- Angabe Feldes, das gesetzt werden soll. Dabei wird das Feld über die Werte aus System-Konstanten angegeben (z.B.
${system.constants.MONTH}
). amount
- Eine Zahl die gesetzt werden soll.
- Date
- Zurückgegeben wird ein neues, entsprechend verändertes Datum.
dateGet
- Liefert den Wert des angegebenes Feldes.
- Parameter
-
field
- Angabe Feldes, das zurückgegeben werden soll. Dabei wird das Feld über die Werte aus System-Konstanten angegeben (z.B.
${system.constants.MONTH}
). - Number
- Zurückgegeben wird der gewünschte Wert des Feldes vom diesem Datum.
dateFormat
- Liefert das Datum mit der übergebenen Formatierung zurück. Diese Funktion stellt eine einfache Alternative zur Verwendung des Print (SP-Tag) dar.
- Parameter
-
format
- Ein String mit dem gewünschten Format des Datums. Weitere Informationen hierzu unter Datumsformat.
locale
- Optional kann noch ein String mit einem Locale für die Formatierung angegeben werden.
- String
- Zurückgegeben wird ein entsprechender String vom diesem Datum.
Beispiele
Template Quelltext
<sp:set name="_now" value="${system.now}"/>
now: <sp:print name="_now"/><br>
now.format: <sp:print name="_now" dateformat="dd.MM.yyyy"/><br>
static get year: <sp:print name="year(${_now})"/><br>
now +1 year: <sp:print name="_now.dateAdd(${system.constants.YEAR},1)" dateformat="dd.MM.yyyy"/><br>
now (wurde nicht verändert!): <sp:print name="_now.dateGet(${system.constants.YEAR})"/><br>
<sp:set name="_now" object="_now.dateSet(${system.constants.YEAR},1975).dateSet(${system.constants.MONTH},6)"/>
6. Juli 1975: <sp:print name="_now.dateSet(${system.constants.DAY},6)" dateformat="dd.MM.yyyy"/><br>
Ausgabe
now: 1243510431481
now.format: 28.05.2009
static get year: 2009
now +1 year: 28.05.2010
now (wurde nicht verändert!): 2009
6. Juli 1975: 06.07.1975