Im Spreadsheet kann man über Freemarker-Spezialausdruck ${.now} auf das aktuelle Datum zugreifen:


Die Beispielausgabe erfolgt, weil im Hintergrund die Standardausgabe eines Date Objektes ausgegeben wird.

Will man nun diese Date-Objekt umformatieren, dann helfen folgende Beispiele weiter:


Code
Beispielwert
Beschreibung
${.now?long / 1000}
1404129730
Unix Timestamp in Sekunden
$.{now?long}

1404128791781

Timestamp in Millisekunden
$.{now?string("yyyy.MM.dd HH:mm:ss")}
2014.06.30 13:45:50

$.{now?string("yyyy.MM.dd")}

2014.06.30


$.{now}
Jun 30, 2014 1:40:46 PM


Weitere Beispiele



Date vs. Strings

 

Hinweis
Die obigen Beispiele funktionieren immer, wenn man ein -Objekt benutzt, wie es bei ${.now} der Fall ist.
Hat man stattdessen wie oft ein Datum als String an der Hand, dann muss dieser String erst in ein Date- oder DateTime-Objekt umgewandelt werden.

Danach kann wie oben die Umwandlung vorgenommen werden.
z.B.

"1995-10-25 03:05 PM"?datetime("yyyy-MM-dd hh:mm a")?string("dd.MM.yyyy")



Weitere Beispiele um ein als String gegebenes Datum zu parsen und umzuformatieren

Gegebenes Datum als String (Zeichenkette): 2017-11-27T14:49:48+01:00


Einlesen / Parsing als Datum:

${"2017-11-27T14:49:48+01:00"?datetime("yyyy-MM-dd'T'HH:mm:ssXXX")}

 

Hierbei ist wichtig, dass das Datumsformat-Pattern (hier yyyy-MM-dd'T'HH:mm:ssXXX) auch dem tatsächlichen Datum entspricht. 


und so könnte man es umformatieren: 

  

${"2017-11-27T14:49:48+01:00"?datetime("yyyy-MM-dd'T'HH:mm:ssXXX")?string("dd.MM.yyyy HH:mm")}

  


Analog funktioniert dieses Beispiel bei zusätzlicher Angabe von Millisekunden. 


Beispiel: 2017-11-27T14:49:48.000+01:00


${"2017-11-27T14:49:48.000+01:00"?datetime("yyyy-MM-dd'T'HH:mm:ss.sssXXX")?string("dd.MM.yyyy HH:mm")}



Das hartcodierte Datum in diesem Beispiel kann durch entsprechende Variablen (Spalten) ersetzt werden. 


Hinweis: dass XXX im Format-Pattern entspricht dem Timezone-Anteil +01:00. Für +01 würde man nur ein X schreiben (Quelle)