Zum Hauptinhalt springen

DateTime@1

Der Node DateTime@1 führt Datums- und Zeitoperationen an Pipeline-Daten durch. Er unterstützt Arithmetik (Hinzufügen von Tagen, Stunden, Minuten, Sekunden), Vergleich (Tage zwischen Datumsangaben), Formatierung und Extraktionsoperationen. Alle DateTime-Operationen arbeiten mit UTC-Datumsangaben.

Adapter-Voraussetzungen​

  • Allgemeine Verfügbarkeit: Alle Adapter unterstützen diesen Node-Typ.

Node-Konfiguration​

Für die Felder path, targetPath, targetValueWriteMode und targetValueKind siehe Überblick.

transformations:
- type: DateTime@1
operation: AddDays # Date/time operation to perform
path: $.startDate # Path to the source DateTime value
targetPath: $.endDate # Path where the result will be stored
value: 7 # Constant value to use in operation
# OR use valuePath instead of value:
# valuePath: $.daysOffset # Path to value to use in operation

Parameter​

Erforderliche Parameter​

ParameterTypBeschreibung
operationenumDurchzuführende Datums-/Zeitoperation (siehe Operationen unten)
targetPathstringJSON-Pfad, an dem das Ergebnis gespeichert wird

Optionale Parameter​

ParameterTypStandardBeschreibung
pathstring$JSON-Pfad zum Quell-DateTime-Wert. Nicht erforderlich für die Operation Now
valueobject-Konstanter Wert: eine Zahl für Add*-Operationen oder ein Format-String für Format
valuePathstring-JSON-Pfad zu einem dynamischen Wert. Hat Vorrang vor value, wenn gesetzt

Operationen​

Der Node unterstützt elf Datums-/Zeitoperationen:

Arithmetische Operationen​

  • Now: Gibt das aktuelle UTC-Datum und die aktuelle Uhrzeit zurück. Ignoriert path, value und valuePath.
  • AddDays: Fügt dem Quell-DateTime eine angegebene Anzahl von Tagen hinzu (Bruchwerte sind zulässig).
  • AddHours: Fügt dem Quell-DateTime eine angegebene Anzahl von Stunden hinzu.
  • AddMinutes: Fügt dem Quell-DateTime eine angegebene Anzahl von Minuten hinzu.
  • AddSeconds: Fügt dem Quell-DateTime eine angegebene Anzahl von Sekunden hinzu.

Vergleichsoperationen​

  • DaysBetween: Berechnet die ganzzahlige Anzahl von Tagen zwischen zwei Datumsangaben (nur Datum, Uhrzeit wird ignoriert). Das Ergebnis ist (valuePath date - source date) in ganzen Tagen. Erfordert valuePath zur Angabe des zweiten Datums.

Extraktionsoperationen​

  • StartOfDay: Kürzt einen DateTime-Wert auf Mitternacht (00:00:00) desselben Tages.
  • ExtractDate: Alias für StartOfDay. Kürzt auf Mitternacht.
  • ExtractTime: Extrahiert den Zeitanteil als String im Format HH:mm:ss.

Formatierungsoperationen​

  • Format: Formatiert ein DateTime mithilfe eines in value angegebenen .NET-Format-Strings. Gibt einen String zurück.

Kombinationsoperationen​

  • CombineDateTime: Nimmt den Datumsanteil aus der Quelle (path) und den Zeitanteil aus einem anderen DateTime (valuePath) und kombiniert sie zu einem einzigen DateTime.

Wertquellen​

Für AddDays, AddHours, AddMinutes und AddSeconds können Sie den Operanden auf zwei Arten angeben:

  1. Konstanter Wert: Verwenden Sie den Parameter value, um einen festen numerischen Wert anzugeben
  2. Dynamischer Wert: Verwenden Sie den Parameter valuePath, um auf einen Wert an anderer Stelle in den Daten zu verweisen

Wenn valuePath angegeben ist, hat es Vorrang vor value. Negative Werte werden unterstützt (z. B. -3, um 3 Tage abzuziehen).

Für DaysBetween und CombineDateTime muss das zweite DateTime über valuePath bereitgestellt werden.

Für Format muss der .NET-Format-String über value bereitgestellt werden (z. B. yyyy-MM-ddTHH:mm).

Fehlerbehandlung​

Der Node wird:

  • Einen Fehler auslösen, wenn der Datenkontext null ist
  • Einen Fehler auslösen, wenn am angegebenen path kein DateTime-Wert gefunden wird
  • Einen Fehler auslösen, wenn value oder valuePath erforderlich, aber nicht gesetzt ist
  • Einen Fehler auslösen, wenn eine nicht unterstützte Operation angegeben wird

Beispiele​

Beispiel 1: Aktuelles Datum um Mitternacht abrufen​

Ermitteln Sie das aktuelle UTC-Datum, gekürzt auf Mitternacht:

transformations:
- type: DateTime@1
operation: Now
targetPath: $.now
- type: DateTime@1
operation: StartOfDay
path: $.now
targetPath: $.today

Ausgabe:

{
"now": "2026-03-09T14:30:45Z",
"today": "2026-03-09T00:00:00Z"
}

Beispiel 2: Tage mit konstantem Wert hinzufügen​

Planen Sie ein Nachfassdatum 7 Tage nach einem Referenzdatum:

transformations:
- type: DateTime@1
operation: AddDays
path: $.orderDate
value: 7
targetPath: $.followUpDate

Eingabe:

{
"orderDate": "2026-03-01T10:00:00Z"
}

Ausgabe:

{
"orderDate": "2026-03-01T10:00:00Z",
"followUpDate": "2026-03-08T10:00:00Z"
}

Beispiel 3: Tage zwischen zwei Datumsangaben berechnen​

Berechnen Sie die Anzahl der Tage zwischen einem Template-Referenzdatum und heute:

transformations:
- type: DateTime@1
operation: DaysBetween
path: $.templateDate
valuePath: $.today
targetPath: $.daysDiff

Eingabe:

{
"templateDate": "2025-01-01T06:00:00Z",
"today": "2026-03-09T00:00:00Z"
}

Ausgabe:

{
"templateDate": "2025-01-01T06:00:00Z",
"today": "2026-03-09T00:00:00Z",
"daysDiff": 432
}

Hinweis: DaysBetween vergleicht nur Datumsangaben (ohne Uhrzeit). Das Ergebnis ist (valuePath.Date - path.Date).TotalDays als ganze Zahl.

Beispiel 4: DateTime als String formatieren​

Formatieren Sie ein DateTime zur Anzeige oder Benennung:

transformations:
- type: DateTime@1
operation: Format
path: $.shiftStart
value: "yyyy-MM-ddTHH:mm"
targetPath: $.shiftStartFormatted

Eingabe:

{
"shiftStart": "2026-03-09T06:00:00Z"
}

Ausgabe:

{
"shiftStart": "2026-03-09T06:00:00Z",
"shiftStartFormatted": "2026-03-09T06:00"
}

Beispiel 5: Datum und Uhrzeit aus verschiedenen Quellen kombinieren​

Nehmen Sie das Datum aus einem DateTime und die Uhrzeit aus einem anderen:

transformations:
- type: DateTime@1
operation: CombineDateTime
path: $.targetDay
valuePath: $.shiftTime
targetPath: $.shiftDateTime

Eingabe:

{
"targetDay": "2026-03-15T00:00:00Z",
"shiftTime": "2025-01-01T14:30:00Z"
}

Ausgabe:

{
"targetDay": "2026-03-15T00:00:00Z",
"shiftTime": "2025-01-01T14:30:00Z",
"shiftDateTime": "2026-03-15T14:30:00Z"
}

Beispiel 6: Dynamischer Tagesversatz mit ValuePath​

Fügen Sie eine variable Anzahl von Tagen aus einer anderen Stelle in den Daten hinzu:

transformations:
- type: DateTime@1
operation: AddDays
path: $.templateStart
valuePath: $.daysToAdd
targetPath: $.shiftStart

Eingabe:

{
"templateStart": "2025-01-01T06:00:00Z",
"daysToAdd": 432
}

Ausgabe:

{
"templateStart": "2025-01-01T06:00:00Z",
"daysToAdd": 432,
"shiftStart": "2026-03-09T06:00:00Z"
}

Beispiel 7: Uhrzeit als String extrahieren​

Extrahieren Sie nur den Zeitanteil aus einem DateTime:

transformations:
- type: DateTime@1
operation: ExtractTime
path: $.timestamp
targetPath: $.timeOnly

Eingabe:

{
"timestamp": "2026-03-09T14:30:45Z"
}

Ausgabe:

{
"timestamp": "2026-03-09T14:30:45Z",
"timeOnly": "14:30:45"
}

Anwendungsfälle​

  • Schichtplanung: Generieren Sie Schichtbeginn-/-endzeiten durch Versetzen von Template-Datumsangaben
  • Datumsarithmetik: Berechnen Sie Fristen, Nachfassdaten oder Ablaufdaten
  • Berichterstellung: Formatieren Sie Datumsangaben für die Anzeige in Berichten oder Benachrichtigungen
  • Datenimport: Normalisieren Sie Datumsformate während der ETL-Verarbeitung
  • Zeitreihen: Berechnen Sie Intervalle zwischen Ereignissen oder Messungen
  • Wiederkehrende Jobs: Berechnen Sie die nächsten Ausführungsdaten für geplante Aufgaben

Hinweise​

  • Nur UTC: Alle DateTime-Operationen verwenden UTC. Stellen Sie sicher, dass die Eingabedatumsangaben im UTC-Format vorliegen.
  • Bruchteile von Tagen: AddDays akzeptiert Bruchwerte (z. B. 0.5 für 12 Stunden).
  • Negative Werte: Add-Operationen akzeptieren negative Werte, um Zeit abzuziehen.
  • DaysBetween-Richtung: Das Ergebnis ist valuePath.Date - path.Date, also positiv, wenn das valuePath-Datum später liegt.
  • Format-Strings: Verwendet standardmäßige .NET-Format-Strings mit CultureInfo.InvariantCulture.

Verwandte Nodes​

  • Math@1: Mathematische Operationen an numerischen Werten durchführen
  • FormatString@1: Formatierte Strings mithilfe von JSON-Pfad-Platzhaltern erstellen
  • ConvertDataType@1: Zwischen verschiedenen Datentypen konvertieren