Date (Objekt): Unterschied zwischen den Versionen
K (Hob den Schutz von „Date (Objekt)“ auf) |
|||
(9 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 3: | Zeile 3: | ||
==Beschreibung== | ==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. Ein Datum vor dem 1. Januar 1970 wird mit einem Negativen Wert | + | 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 <code>-9223372036854775808</code> - <code>9223372036854775807</code> 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 [[dateformat|Datumsformate]] - beispielsweise bei der Ausgabe mit [[sp:print]] erzeugt werden. | 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 [[dateformat|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 <code>locale</code>-Attribut von [[sp:print]] verwendet 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 <code>locale</code>-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. <code>size</code>. | ||
+ | |||
+ | 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: | ||
+ | * <code>system.constants.YEAR</code> | ||
+ | * <code>system.constants.MONTH</code> | ||
+ | * <code>system.constants.WEEK</code> bzw. <code>system.constants.DAY_OF_YEAR</code> | ||
+ | * <code>system.constants.WEEK_OF_MONTH</code> | ||
+ | * <code>system.constants.DAY</code> bzw. <code>system.constants.DAY_OF_MONTH</code> | ||
+ | * <code>system.constants.DAY_OF_YEAR</code> | ||
+ | * <code>system.constants.DAY_OF_WEEK</code> | ||
+ | * <code>system.constants.HOUR</code> | ||
+ | * <code>system.constants.MINUTE</code> | ||
+ | * <code>system.constants.SECOND</code> | ||
+ | * <code>system.constants.MILLISECOND</code> | ||
+ | |||
+ | |||
+ | Alternativ stehen zur Berechnung von Datums-Werten auch noch einige statische [[Kalender Funktionen]] zur Verfügung. | ||
+ | |||
+ | ==Methoden== | ||
+ | {| class="prettytable sortable" | ||
+ | |- class="hintergrundfarbe1" | ||
+ | ! Methode || Rückgabewert || Beschreibung || ab IES Version | ||
+ | |- | ||
+ | | <code>dateAdd([[String]] field, [[Number]] amount)</code> | ||
+ | | [[Date]] | ||
+ | | Ändert den Wert des angegebenes Feldes um den übergebenen Zahl (positiv oder negativ) | ||
+ | | 2.0.4 | ||
+ | |- | ||
+ | | <code>dateSet([[String]] field, [[Number]] amount)</code> | ||
+ | | [[Date]] | ||
+ | | Setzt ein angegebenes Feld auf einen bestimmten Wert | ||
+ | | 2.0.4 | ||
+ | |- | ||
+ | | <code>dateGet([[String]] field)</code> | ||
+ | | [[Number]] | ||
+ | | Liefert den Wert des angegebenen Feldes zurück | ||
+ | | 2.0.4 | ||
+ | |- | ||
+ | | <code>dateFormat([[String]] format)</code> | ||
+ | | [[String]] | ||
+ | | Gibt eine formatiertes Datum zurück | ||
+ | | 2.0.4 | ||
+ | |- | ||
+ | | <code>dateFormat([[String]] format, [[String]] locale)</code> | ||
+ | | [[String]] | ||
+ | | Gibt eine formatiertes Datum zurück | ||
+ | | 2.0.4 | ||
+ | |} | ||
+ | |||
+ | ;<code>[[Date]] dateAdd([[String]] field, [[Number]] amount)</code> | ||
+ | :Ändert den Wert des angegebenes Feldes um den übergebenen Zahl (positiv oder negativ). | ||
+ | :;Parameter | ||
+ | ::;<code>field</code> | ||
+ | :::Angabe Feldes, das inkrementiert bzw. bei negativen Zahlen dekrementiert werden soll. Dabei wird das Feld über die Werte aus [[Constants|System-Konstanten]] angegeben (z.B. <code>${system.constants.MONTH}</code>). | ||
+ | ::;<code>amount</code> | ||
+ | :::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. | ||
+ | |||
+ | ;<code>[[Date]] dateSet([[String]] field, [[Number]] amount)</code> | ||
+ | :Setzt den Wert des angegebenes Feldes auf die übergebene Zahl. | ||
+ | :;Parameter | ||
+ | ::;<code>field</code> | ||
+ | :::Angabe Feldes, das gesetzt werden soll. Dabei wird das Feld über die Werte aus [[Constants|System-Konstanten]] angegeben (z.B. <code>${system.constants.MONTH}</code>). | ||
+ | ::;<code>amount</code> | ||
+ | :::Eine Zahl die gesetzt werden soll. | ||
+ | :;Rückgabewert | ||
+ | ::;[[Date]] | ||
+ | :::Zurückgegeben wird ein neues, entsprechend verändertes Datum. | ||
+ | |||
+ | ;<code>[[Number]] dateGet([[String]] field)</code> | ||
+ | :Liefert den Wert des angegebenes Feldes. | ||
+ | :;Parameter | ||
+ | ::;<code>field</code> | ||
+ | :::Angabe Feldes, das zurückgegeben werden soll. Dabei wird das Feld über die Werte aus [[Constants|System-Konstanten]] angegeben (z.B. <code>${system.constants.MONTH}</code>). | ||
+ | :;Rückgabewert | ||
+ | ::;[[Number]] | ||
+ | :::Zurückgegeben wird der gewünschte Wert des Feldes vom diesem Datum. | ||
+ | |||
+ | ;<code>[[String]] dateFormat([[String]] format)</code> | ||
+ | :Liefert das Datum mit der übergebenen [[Datumsformat|Formatierung]] zurück. Diese Funktion stellt eine einfache Alternative zur Verwendung des [[Print (SP-Tag)]] dar. | ||
+ | :;Parameter | ||
+ | ::;<code>format</code> | ||
+ | :::Ein [[String]] mit dem gewünschten Format des Datums. Weitere Informationen hierzu unter [[Datumsformat]]. | ||
+ | :;Rückgabewert | ||
+ | ::;[[String]] | ||
+ | :::Zurückgegeben wird ein entsprechender [[String]] vom diesem Datum. | ||
+ | |||
+ | ;<code>[[String]] dateFormat([[String]] format, [[String]] locale)</code> | ||
+ | :Liefert das Datum mit der übergebenen [[Datumsformat|Formatierung]] zurück. Diese Funktion stellt eine einfache Alternative zur Verwendung des [[Print (SP-Tag)]] dar. | ||
+ | :;Parameter | ||
+ | ::;<code>format</code> | ||
+ | :::Ein [[String]] mit dem gewünschten Format des Datums. Weitere Informationen hierzu unter [[Datumsformat]]. | ||
+ | ::;<code>locale</code> | ||
+ | :::Optional kann noch ein [[String]] mit einem Locale für die Formatierung angegeben werden. | ||
+ | :;Rückgabewert | ||
+ | ::;[[String]] | ||
+ | :::Zurückgegeben wird ein entsprechender [[String]] vom diesem Datum. | ||
+ | |||
+ | ==Beispiele== | ||
+ | |||
+ | Template Quelltext | ||
+ | |||
+ | <source lang="xml"> | ||
+ | <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)"/> | ||
+ | 1975: <sp:print name="_now.dateSet(${system.constants.DAY},6)" dateformat="yyyy"/><br> | ||
+ | 06.07.1975: <sp:print name="_now.dateSet(${system.constants.DAY},6).dateFormat('dd.MM.yyyy')"/><br> | ||
+ | 6. July 1975 - en: <sp:print name="_now.dateSet(${system.constants.DAY},6).dateFormat('dd. MMMM yyyy','en')"/><br> | ||
+ | 6. Juli 1975 - de: <sp:print name="_now.dateSet(${system.constants.DAY},6).dateFormat('dd. MMMM yyyy','de')"/><br> | ||
+ | </source> | ||
+ | |||
+ | Ausgabe | ||
+ | <source lang="text"> | ||
+ | now: 1243510431481 | ||
+ | now.format: 28.05.2009 | ||
+ | static get year: 2009 | ||
+ | now +1 year: 28.05.2010 | ||
+ | now (wurde nicht verändert!): 2009 | ||
+ | 1975: 1975 | ||
+ | 06.07.1975: 06.07.1975 | ||
+ | 6. July 1975 - en: 06. July 1975 | ||
+ | 6. Juli 1975 - de: 06. Juli 1975 | ||
+ | </source> | ||
<noinclude> | <noinclude> | ||
[[Category:Objekte]] | [[Category:Objekte]] | ||
− | |||
− | |||
</noinclude> | </noinclude> |
Aktuelle Version vom 24. Februar 2010, 12:12 Uhr
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(String field, Number amount)
|
Date | Ändert den Wert des angegebenes Feldes um den übergebenen Zahl (positiv oder negativ) | 2.0.4 |
dateSet(String field, Number amount)
|
Date | Setzt ein angegebenes Feld auf einen bestimmten Wert | 2.0.4 |
dateGet(String field)
|
Number | Liefert den Wert des angegebenen Feldes zurück | 2.0.4 |
dateFormat(String format)
|
String | Gibt eine formatiertes Datum zurück | 2.0.4 |
dateFormat(String format, String locale)
|
String | Gibt eine formatiertes Datum zurück | 2.0.4 |
Date dateAdd(String field, Number amount)
- Ä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.
Date dateSet(String field, Number amount)
- 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.
- Rückgabewert
-
- Date
- Zurückgegeben wird ein neues, entsprechend verändertes Datum.
Number dateGet(String field)
- 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}
).
- Rückgabewert
-
- Number
- Zurückgegeben wird der gewünschte Wert des Feldes vom diesem Datum.
String dateFormat(String format)
- 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.
String dateFormat(String format, String locale)
- 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.
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)"/>
1975: <sp:print name="_now.dateSet(${system.constants.DAY},6)" dateformat="yyyy"/><br>
06.07.1975: <sp:print name="_now.dateSet(${system.constants.DAY},6).dateFormat('dd.MM.yyyy')"/><br>
6. July 1975 - en: <sp:print name="_now.dateSet(${system.constants.DAY},6).dateFormat('dd. MMMM yyyy','en')"/><br>
6. Juli 1975 - de: <sp:print name="_now.dateSet(${system.constants.DAY},6).dateFormat('dd. MMMM yyyy','de')"/><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
1975: 1975
06.07.1975: 06.07.1975
6. July 1975 - en: 06. July 1975
6. Juli 1975 - de: 06. Juli 1975