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:


CodeBeispielwertBeschreibung
${.now?long / 1000}1404129730Unix 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)



Weitere Beispiele

Aktuelles Datum in das Zielformat umwandeln:

${.now?string("yyyy-MM-dd'T'HH:mm:ss.S'Z'")}

Ausgabe: 2021-02-22T11:39:49.885Z


Quelldatum parsen: 

${"2021-02-19T17:33:12+01:00"?datetime.iso}


oder 

${"2021-02-19T17:33:12+01:00"?datetime("yyyy-MM-dd'T'HH:mm:ssXXX")}


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



Quelldatum parsen und in Zielformat umwandeln

${"2021-02-19T17:33:12+01:00"?datetime.iso?string("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")}


oder

${"2021-02-19T17:33:12+01:00"?datetime("yyyy-MM-dd'T'HH:mm:ssXXX")?string("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")}

Ausgabe: 2021-02-19T17:33:12.000Z



relevante Freemarker Dokumentation


und 


Cookbook