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
| Parameter | Typ | Beschreibung |
|---|---|---|
operation | enum | Durchzuführende Datums-/Zeitoperation (siehe Operationen unten) |
targetPath | string | JSON-Pfad, an dem das Ergebnis gespeichert wird |
Optionale Parameter
| Parameter | Typ | Standard | Beschreibung |
|---|---|---|---|
path | string | $ | JSON-Pfad zum Quell-DateTime-Wert. Nicht erforderlich für die Operation Now |
value | object | - | Konstanter Wert: eine Zahl für Add*-Operationen oder ein Format-String für Format |
valuePath | string | - | 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. Ignoriertpath,valueundvaluePath.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. ErfordertvaluePathzur Angabe des zweiten Datums.
Extraktionsoperationen
StartOfDay: Kürzt einen DateTime-Wert auf Mitternacht (00:00:00) desselben Tages.ExtractDate: Alias fürStartOfDay. Kürzt auf Mitternacht.ExtractTime: Extrahiert den Zeitanteil als String im FormatHH:mm:ss.
Formatierungsoperationen
Format: Formatiert ein DateTime mithilfe eines invalueangegebenen .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:
- Konstanter Wert: Verwenden Sie den Parameter
value, um einen festen numerischen Wert anzugeben - 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
pathkein DateTime-Wert gefunden wird - Einen Fehler auslösen, wenn
valueodervaluePatherforderlich, 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:
AddDaysakzeptiert Bruchwerte (z. B.0.5fü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