VAULOVAULO Help Center

Datum und Uhrzeit formatieren

Zeitstempel wie updatedAt kommen als ISO-8601-Wert in UTC an. So gibst du im JSON-Template nur das Datum, nur die Uhrzeit oder ein lokalisiertes Format aus.

Alle Zeitstempel im AssetFeed sind Texte im ISO-8601-Format in UTC, zum Beispiel 2026-09-09T06:15:29.3944623Z. Das betrifft feed.generatedAt, asset.updatedAt, asset.exif.dateTime und asset.exif.gps.timestamp. Viele Systeme können damit direkt arbeiten. Brauchst du nur das Datum, nur die Uhrzeit oder ein bestimmtes Format, formatierst du den Wert im JSON-Template.

Rezepte

Der Text wird zuerst mit date.parse in ein Datum umgewandelt und dann mit date.to_string und einem Formatmuster ausgegeben:

"date":    "{{ asset.updatedAt | date.parse | date.to_string "%Y-%m-%d" }}"          → 2026-09-09
"dateDe":  "{{ asset.updatedAt | date.parse | date.to_string "%d.%m.%Y" }}"          → 09.09.2026
"time":    "{{ asset.updatedAt | date.parse | date.to_string "%H:%M:%S" }}"          → 06:15:29
"short":   "{{ asset.updatedAt | date.parse | date.to_string "%H:%M" }}"             → 06:15
"long":    "{{ asset.updatedAt | date.parse | date.to_string "%A, %d. %B %Y" "de-DE" }}" → Mittwoch, 09. September 2026
"unix":    {{ asset.updatedAt | date.parse | date.to_string "%s" }}                   → 1788934529
"default": "{{ asset.updatedAt | date }}"                                             → 09 Sep 2026

Ohne Formatmuster – {{ asset.updatedAt | date }} – bekommst du das Standardformat %d %b %Y.

Nur den Text zuschneiden

Weil der Wert immer dieselbe Form hat, kannst du Datum und Uhrzeit auch als Text ausschneiden. Das ist der einfachste Weg, wenn du die Werte in UTC belassen willst:

"date": "{{ asset.updatedAt | string.slice 0 10 }}"   → 2026-09-09
"time": "{{ asset.updatedAt | string.slice 11 8 }}"   → 06:15:29

Formatcodes

CodeErgebnisBedeutung
%Y2026Jahr vierstellig
%y26Jahr zweistellig
%m09Monat
%d09Tag
%e9Tag ohne führende Null
%BSeptemberMonatsname
%bSepMonatsname kurz
%AMittwochWochentag
%aMiWochentag kurz
%H06Stunde (24 h)
%I06Stunde (12 h)
%M15Minute
%S29Sekunde
%L394Millisekunden
%pAMAM oder PM
%F2026-09-09Datum nach ISO 8601, wie %Y-%m-%d
%T06:15:29Uhrzeit, wie %H:%M:%S
%R06:15Uhrzeit ohne Sekunden
%j252Tag im Jahr
%V37Kalenderwoche nach ISO 8601
%u3Wochentag als Zahl, Montag = 1
%s1788934529Unix-Zeitstempel in Sekunden
%Z+00:00Zeitzonen-Versatz
%%%Ein Prozentzeichen

Sprache der Namen

Monats- und Wochentagsnamen folgen der Kultur, die du als zweites Argument angibst, zum Beispiel "de-DE", "en-US" oder "fr-FR". Ohne Angabe wird Englisch verwendet.

{{ asset.updatedAt | date.parse | date.to_string "%d. %B %Y" "de-DE" }}   → 09. September 2026
{{ asset.updatedAt | date.parse | date.to_string "%d %B %Y" "en-US" }}    → 09 September 2026

Zeitzone

date.parse liefert die Uhrzeit in der Zeitzone des VAULO-Servers, und die ist UTC. Aus 06:15:29Z wird also 06:15:29. Eine automatische Umrechnung in eine andere Zeitzone gibt es im Template nicht. Du hast drei Möglichkeiten:

  • Im externen System umrechnen. Gib den ISO-Wert unverändert aus ("{{ asset.updatedAt }}") und überlasse die Umrechnung dem System, das den Feed liest. Das ist die sauberste Lösung, weil das System die Sommerzeit kennt.
  • Fester Versatz. Mit date.add_hours verschiebst du die Zeit um eine feste Stundenzahl, zum Beispiel für Mitteleuropa im Sommer: {{ asset.updatedAt | date.parse | date.add_hours 2 | date.to_string "%H:%M" }} ergibt 08:15. Die Sommerzeit-Umstellung musst du dabei selbst berücksichtigen.
  • Nur das Datum. Wenn dir das Datum reicht, ist die Zeitzone in den allermeisten Fällen egal.

Aufnahmedatum aus EXIF

asset.exif.dateTime ist null, wenn die Datei keinen Aufnahmezeitpunkt trägt. Ein null lässt sich nicht formatieren – fange den Fall deshalb ab:

"takenOn": {% if asset.exif.dateTime %}"{{ asset.exif.dateTime | date.parse | date.to_string "%d.%m.%Y" }}"{% else %}null{% endif %}

On this page