Search the FirstSpirit Knowledge Base
Hallo,
ich versuche gerade, ein Datum in UTC-Zeit auszugeben. Dazu probiere ich folgendes:
$CMS_SET(sdf, class("java.text.SimpleDateFormat").new())$
$CMS_SET(void, sdf.setTimeZone(java.util.TimeZone.getTimeZone("UTC")))$
$CMS_SET(void, sdf.applyPattern("hh:mm"))$
$CMS_VALUE(sdf.format(class("java.util.Date").new()),default:"null")$
Problem ist wohl, dass das Objekt vom Typ Date kurz nach dem Anlegen in Wirklichkeit ein GregorianCalendar-Objekt ist:
$CMS_SET(date, class("java.util.Date").new())$
$CMS_VALUE("Date is of type '" + date.class + "'")$
<output>
Date is of type 'class java.util.GregorianCalendar'
Kann mir jemand weiterhelfen?
Danke und viele Grüße,
Matthias
Hallo zusammen,
Ich fände es ja viel einfacher, direkt die entsprechende Zeitzone zu benutzen
In 4.2R4 geht folgendes problemlos:
$CMS_VALUE(#global.now.timeZone("UTC").format("dd.MM.yyyy hh:mm:ss z"))$
Um sich einen Überblick zu verschaffen, was möglich ist, kann man auch einfach mal dies hier ausprobieren:
<h1>alle Zeitzonen</h1>
$CMS_VALUE(#global.now.timeZone.availableIDs.sort.toString("<br>"))$
<h1>Ausgabe in Zeitzonen</h1>
$CMS_VALUE(#global.now.format("dd.MM.yyyy hh:mm:ss z"))$<br>
<br><br><br>
$CMS_VALUE(#global.now.timeZone)$<br>
$CMS_VALUE(#global.now.timeZone("America/Los_Angeles").format("dd.MMMM.yyyy hh:mm:ss Z","EN"))$<br>
$CMS_VALUE(#global.now.timeZone("Europe/Berlin").format("dd.MM.yyyy hh:mm:ss z"))$<br>
Viele Grüsse aus Dortmund,
Holger
P.S. class("java.util.Date").new() ist genauso das aktuelle Datum wie #global.now, insofern würde ich ersteres nicht verwenden
Nachricht geändert durch Holger Höbbel Auf entsprechende Bitte das P.S. durchgestrichen
Formatierte Ausgabe kann man über 'date.format(pattern)' erreichen.
$CMS_SET(void, sdf.setTimeZone(java.util.TimeZone.getTimeZone("UTC")))$
Das klappt nicht, da muss noch ein class(..) drum.
Nicht ausprobiert, aber ich denke, folgendes sollte funktionieren:
$CMS_SET(date, date.setTimeZone(class("java.util.TimeZone").getTimeZone("UTC")))$
$CMS_VALUE(date.format("hh:mm"))$
Problem ist wohl, dass das Objekt vom Typ Date kurz nach dem Anlegen in Wirklichkeit ein GregorianCalendar-Objekt ist:
Für einige Methode wird der Typ transparent von java.util.Date nach java.util.Calendar umgewandelt.
Hallo zusammen,
Ich fände es ja viel einfacher, direkt die entsprechende Zeitzone zu benutzen
In 4.2R4 geht folgendes problemlos:
$CMS_VALUE(#global.now.timeZone("UTC").format("dd.MM.yyyy hh:mm:ss z"))$
Um sich einen Überblick zu verschaffen, was möglich ist, kann man auch einfach mal dies hier ausprobieren:
<h1>alle Zeitzonen</h1>
$CMS_VALUE(#global.now.timeZone.availableIDs.sort.toString("<br>"))$
<h1>Ausgabe in Zeitzonen</h1>
$CMS_VALUE(#global.now.format("dd.MM.yyyy hh:mm:ss z"))$<br>
<br><br><br>
$CMS_VALUE(#global.now.timeZone)$<br>
$CMS_VALUE(#global.now.timeZone("America/Los_Angeles").format("dd.MMMM.yyyy hh:mm:ss Z","EN"))$<br>
$CMS_VALUE(#global.now.timeZone("Europe/Berlin").format("dd.MM.yyyy hh:mm:ss z"))$<br>
Viele Grüsse aus Dortmund,
Holger
P.S. class("java.util.Date").new() ist genauso das aktuelle Datum wie #global.now, insofern würde ich ersteres nicht verwenden
Nachricht geändert durch Holger Höbbel Auf entsprechende Bitte das P.S. durchgestrichen
Super, funktioniert. Vielen Dank dafür.
Nur bin ich jetzt mehr und mehr irritiert, welche Objekte man da genau in den Händen hat. Wie im ersten Post geschrieben, liefert Date() bei .getClass() 'GregorianCalendar'. #global.now ist wohl auch vom Typ GregorianCalendar ... Und jetzt schreibst du, das SimpleDateFormat.new() das selbe #global.now ist.
Gab es irgendwo eine Beschreibung, wie die ExpressionLanguage von FirstSpirit aufgebaut ist? Es scheint da, zumindest aus meiner Sicht, viele hidden Features zu geben. Auch die Hilfe, die mit dem FS-Server kommt, beschreibt nur wenige Funktionen (isSet(), if(), ref(), font(), legacyCompare()). Wo z. B. ist eigentlich class("x.y.z") beschrieben?
P.S. class("java.text.SimpleDateFormat").new() ist genauso das aktuelle Datum wie #global.new, insofern würde ich ersteres nicht verwenden
Das stimmt natürlich nicht. Vertipper?
Nur bin ich jetzt mehr und mehr irritiert, welche Objekte man da genau in den Händen hat.
Das kommt durch die 'Anomalie' von "date.class" - das könnte man auch als Bug bezeichnen. Der Vertipper von Holger ist natürlich auch nicht hilfreich. Ignoriere einfach sein "post scriptum".
Vertippter korrigiert