matthiasforberg
Occasional Collector

GregorianCalendar neu setzen oder addieren, wie?

Hallo,

ich habe ein Datumsfeld so umgebaut, dass es getrennt nach Datum und Uhrzeit gepflegt wird. Die Uhrzeit hat dabei eine Vorbelegung und wird nur selten redaktionell geändert:

<CMS_INPUT_DATE name="stValidFromDate" mode="date" ../>

<CMS_INPUT_DATE name="stValidFromTime" mode="time" ../>

Um das Datum weiter zu verarbeiten, muss es wieder als ein Datum zusammengefügt werden. Es soll auch GregorianCalendar bleiben, um vergleichende Methoden wie before oder after verwenden zu können.

In der Doku steht die Methode set(int,int), die gemäß API Doc von java.util.Calendar geerbt wird. Leider bekomme ich damit nicht da gewünschte Ergebnis. Ich habe es folgendermaßen versucht (hier als Bsp. für die Stunde):

$CMS_SET(classCal, class("java.util.Calendar"))$

$CMS_SET(void, setTimeFromDate.set(classCal.HOUR_OF_DAY, stValidFromTime.get(classCal.HOUR_OF_DAY)) )$

Aber damit bekomme ich nichts zurück, getClass liefert "de.espirit.firstspirit.parser.eval.Undefined".

Oder gibt es möglicherweise eine einfachere Lösung, um die beiden Datumsfelder Datum+Uhrzeit zu addieren? Ich hatte zwischenzeitlich mal versucht, die beiden Felder mit getTimeInMillis zu addieren und das Ergebnis wieder als Datum umzuwandeln. Das funktioniert auch, bloß verliere ich da eine Stunde, weil es offenbar in UTC umgewandelt wird...

Wie kann ich den Setter für das Datum richtig benutzen, bzw. wie bekomme ich die beiden DATEs zu einem Datum zusammen?

Danke und Grüße

Matthias

0 Kudos
2 Replies
Peter_Jodeleit
Crownpeak employee

Aber damit bekomme ich nichts zurück, getClass liefert "de.espirit.firstspirit.parser.eval.Undefined".

Mir ist nicht ganz klar, bei welcher Ausgabe du nichts zurückbekommst. Generell hilfreich sind die "Fehler der Vorschau".

Noch ein Hinweis: Du kannst die Felder im Templatecode auch wie folgt setzen:

$CMS_SET(myDate, myDate.set("hour_of_day", myTime.get("hour_of_day")))$ 

Prinzipiell ist das Verfahren aber problematisch, da beide "Daten" unterschiedliche Zeitzonen haben können, z.B. CET und CEST (Sommerzeit).

Peter
0 Kudos

Hallo Matthias,

benötigst du noch weitere Hilfe oder konnte dir Peters Antwort bereits weiterhelfen? In diesem Fall wäre es toll, wenn du seine "richtige Antwort" entsprechend markierst.

Solltest du eine eigene Lösung gefunden haben, wäre es super, wenn du diese hier bereitstellst.

Viele Grüße

Michaela

0 Kudos