# Datetime in anderes Format umwandeln

**URL:** <https://forum.synesty.com/t/datetime-in-anderes-format-umwandeln/1952>\
**Category:** Fragen und Antworten\
**Created:** [20. Februar 2021 um 16:03 UTC](https://forum.synesty.com/t/datetime-in-anderes-format-umwandeln/1952 "2021-02-20T16:03:05Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![raminmovahed](https://forum.synesty.com/letter_avatar_proxy/v4/letter/r/e274bd/32.png) [@raminmovahed](https://forum.synesty.com/u/raminmovahed)\
**Post date:** [20. Februar 2021 um 16:03 UTC](https://forum.synesty.com/t/datetime-in-anderes-format-umwandeln/1952/1 "2021-02-20T16:03:05Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![synesty-Sales](https://forum.synesty.com/user_avatar/forum.synesty.com/synesty-sales/32/114_2.png) [@synesty-Sales](https://forum.synesty.com/u/synesty-Sales)\
**Post date:** [22. Februar 2021 um 10:33 UTC](https://forum.synesty.com/t/datetime-in-anderes-format-umwandeln/1952/2 "2021-02-22T10:33:35Z")

</div>

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](https://freemarker.apache.org/docs/ref_builtins_string.html#ref_builtin_string_date)

und

[Cookbook](https://support.synesty.com/de/support/solutions/articles/11000000450-spreadsheet-wie-formatiere-ich-ein-datum-date-als-timestamp-und-anderen-formaten-)

---

<div class="post-metadata">

**Author:** ![okdesigns](https://forum.synesty.com/letter_avatar_proxy/v4/letter/o/d2c977/32.png) [@okdesigns](https://forum.synesty.com/u/okdesigns)\
**Post date:** [12. Mai 2023 um 08:11 UTC](https://forum.synesty.com/t/datetime-in-anderes-format-umwandeln/1952/3 "2023-05-12T08:11:30Z")

</div>

@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?

---

<div class="post-metadata">

**Author:** ![synesty-Lukas](https://forum.synesty.com/user_avatar/forum.synesty.com/synesty-lukas/32/114_2.png) [@synesty-Lukas](https://forum.synesty.com/u/synesty-Lukas)\
**Post date:** [12. Mai 2023 um 08:58 UTC](https://forum.synesty.com/t/datetime-in-anderes-format-umwandeln/1952/4 "2023-05-12T08:58:39Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![okdesigns](https://forum.synesty.com/letter_avatar_proxy/v4/letter/o/d2c977/32.png) [@okdesigns](https://forum.synesty.com/u/okdesigns)\
**Post date:** [12. Mai 2023 um 09:04 UTC](https://forum.synesty.com/t/datetime-in-anderes-format-umwandeln/1952/5 "2023-05-12T09:04:16Z")

</div>

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](https://forum.synesty.com/uploads/default/original/2X/a/a57421305704ead12996bd18e2960d5c944e0b33.png)

---

<div class="post-metadata">

**Author:** ![synesty-Lukas](https://forum.synesty.com/user_avatar/forum.synesty.com/synesty-lukas/32/114_2.png) [@synesty-Lukas](https://forum.synesty.com/u/synesty-Lukas)\
**Post date:** [12. Mai 2023 um 09:09 UTC](https://forum.synesty.com/t/datetime-in-anderes-format-umwandeln/1952/6 "2023-05-12T09:09:42Z")

</div>

Hi @okdesigns,

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

```auto
"${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

---

<div class="post-metadata">

**Author:** ![okdesigns](https://forum.synesty.com/letter_avatar_proxy/v4/letter/o/d2c977/32.png) [@okdesigns](https://forum.synesty.com/u/okdesigns)\
**Post date:** [12. Mai 2023 um 11:24 UTC](https://forum.synesty.com/t/datetime-in-anderes-format-umwandeln/1952/7 "2023-05-12T11:24:14Z")

</div>

So funktioniert es 🙂 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'")}`

---

<div class="post-metadata">

**Author:** ![synesty-Lukas](https://forum.synesty.com/user_avatar/forum.synesty.com/synesty-lukas/32/114_2.png) [@synesty-Lukas](https://forum.synesty.com/u/synesty-Lukas)\
**Post date:** [12. Mai 2023 um 11:41 UTC](https://forum.synesty.com/t/datetime-in-anderes-format-umwandeln/1952/8 "2023-05-12T11:41:00Z")

</div>

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

> **[Dokumentation der Template Funktionen - Transformy](https://apps.synesty.com/transformy?action=showTemplateFunctionDocumentation&target=functions#datecalc)**
>
> Mit der Synesty Cloud-Middleware verbinden Sie Anwendungen und APIs ohne Programmierung per Drag&Drop und automatisieren Business-Prozesse.

```auto
<#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
