Datetime in anderes Format umwandeln

Hallo Zusammen,


ich würde gerne über den Mapper einen Zeitstempel in ein anderes Format umwandeln

So habe ich es im Spreadsheet stehen

2021-02-19T17:33:12+01:00

und so bräuchte es am Ende

2021-02-20T15:24:46.567Z

Das Datum muss später in ein JSON String rein und in der Vorlage die ich bekommen habe, ist der Zeitstempel im obigen Format hinterlegt.


Es würde mir auch schon reichen wenn ich einfach den "current_timestamp" in das Format umwandeln kann.

Jegliche Versuche und Recherche zum Freemarker sind leider ist nichts gelaufen.


Hätte jemand eine Idee?


Danke!


Viele Grüße

Aktuelles Datum in das Zielformat umwandeln:

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



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'")}S




relevante Freemarker Dokumentation


und


Cookbook


@synesty-Sales
Bin eurer Vorgehensweise gefolgt, bekomme aber dennoch eine Fehlermeldung. Möchte den folgenden Ausdruck ${current_timestamp?string("yyyy-MM-dd'T'HH:mm:ss.S'Z'")} im „requestBody“ eines APICall Steps nutzen. Bekomme hier aber eine Fehlermeldung (400), egal was ich versuche.

Könnt ihr mir weiterhelfen?

Hallo @okdesigns,

hast du den Request schon einmal ohne diese Methode ausgeführt? Also um einfach erstmal zu schauen, ob denn auch nichts anderes in dem Request die 400 auslöst.

Viele Grüße
Lukas

Hi @synesty-Lukas,
yes - wenn ich statt dem Ausdruck einen einfachen String übergebe (wie bei „FromChangedAt“) klappt es einwandfrei.
Bildschirmfoto 2023-05-12 um 11.03.32

Hi @okdesigns,

ich glaube ich sehe den Fehler. Du musst die gesamte Methode noch in Anführungszeichen setzen. Also:

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

Weil der Key ToChangeAt einen String erwartet so wie bei FromChangedAt.

Viele Grüße
Lukas

So funktioniert es :slight_smile: Danke! Kannst du mir noch bei folgendem helfen:
Kann ich per Freemarker auch das aktuelle Datum - 1 Monat als String darstellen?
Ich stell mir da sowas vor:

2592000000 = 30 Tage in Millisekunden

${(current_timestamp?long - 18 * 2592000000)?number_to_date?string("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")}

Du könntest das ganze noch in die datecalc Methode verpacken:

<#assign berechnungsdatum>${current_timestamp?string("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")}</#assign>
${datecalc(berechnungsdatum, "MONTH", -1)?date?string("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")}

Viele Grüße
Lukas

1 „Gefällt mir“