Liest das im Wert b eines EDIFACT- oder EANCOM-DTM-Segments kodierte Datum mit Uhrzeit aus und gibt es als Zeitstempel zurück. Der DTM-Formatcode a (Datenelement 2379) legt fest, wie der Wert b interpretiert wird.
Beispiel: In DTM+137:20240302:102' ist der Wert 20240302 und der Formatcode 102.
Bei der Verarbeitung gelten folgende Regeln:
Formatcodes, die einen Zeitraum beschreiben (z. B.
718), enthalten zwei Datumsangaben. Der Parametercwählt den zurückgegebenen Teil. Bei allen anderen Formatcodes hatckeine Wirkung.Die Zeitzone
dwird nur für Werte verwendet, die selbst keine Zeitzone enthalten. Enthält der Formatcode eine Zeitzone (z. B.205,304,406), wird die im Wert enthaltene Zeitzone verwendet unddignoriert.Die Locale
ebetrifft nur Formatcodes, die auf Kalenderwochen beruhen (103,104,615,616,715,716). Ohne Locale gelten die EDIFACT-Regeln: Die Woche beginnt am Montag, und Woche 1 ist die Woche, die den 1. Januar enthält. Mit einer Locale gelten deren Wochenregeln (fürde_DEdie ISO-8601-Regeln, bei denen Woche 1 die erste Woche mit mindestens vier Tagen im neuen Jahr ist).Zweistellige Jahresangaben (
YY) werden dem Jahrhundert zugeordnet, das im Bereich von 80 Jahren vor bis 20 Jahren nach dem aktuellen Datum liegt. Im Jahr 2026 bedeutet99also 1999 und12das Jahr 2012.Das Vorzeichen der Zeitzone kann im Wert als
+oder-geschrieben werden oder, wie in EDIFACT üblich, alsP(Plus) undM(Minus).Führende und nachfolgende Leerzeichen in Formatcode
aund Wertbwerden entfernt; die Groß-/Kleinschreibung spielt keine Rolle.
Parameter
Parameter | Beschreibung |
|---|---|
| DTM-Formatcode (Datenelement 2379), z. B. |
| Der zu verarbeitende Wert aus dem DTM-Segment. |
| (optional) Teil eines Zeitraums, der zurückgegeben wird. |
| (optional) Zeitzone für Werte, die keine eigene Zeitzone enthalten. Zulässig sind Zeitzonen-IDs wie |
| (optional) Locale für die Regeln der Kalenderwoche, z. B. |
| (optional) Fehlerbehandlung, wenn
Default: |
| (optional) Erzwingt einen leeren Wert. Bei |
Formatcodes
Unterstützt werden Formatcodes für Kalenderdaten, Datum mit Uhrzeit (auch mit Zeitzone), reine Uhrzeiten und Zeiträume. Nicht im Wert enthaltene Bestandteile werden auf ihren niedrigsten Wert gesetzt: eine fehlende Uhrzeit auf 00:00:00, ein fehlender Tag auf den ersten Tag des Zeitraums, ein fehlendes Jahr auf 1970.
Formatcodes, die keine Datums- oder Zeitangabe, sondern eine Zahl darstellen (107–110 sowie 801–814), werden zurückgewiesen. Für diese Formatcodes ist die Funktion edifact/eancom DTM to number parsing vorgesehen.
Die vollständige Definition aller Formatcodes finden Sie in der Codeliste des UN/CEFACT-Datenelements 2379: UN/CEFACT UNCL 2379.
EANCOM definiert zusätzlich die folgenden Codes, die nicht in der UN-Codeliste enthalten sind:
Code | Wert | Ergebnis |
|---|---|---|
20E | CCYYMMDDHHMMCCYYMMDDHHMM | Datum und Uhrzeit, wie |
21E | DDHHMMDDHHMM | Tag und Uhrzeit, im Januar 1970 |
22E | DHHMMDHHMM | Wochentag und Uhrzeit, wie |
Beispiele
Die Zeitzone des Servers ist in den Beispielen Europe/Berlin. Die Zeitzone des Ergebnisses steht in Klammern. Die Parameter f und g sind leer, sofern nicht anders angegeben.
Parameter a | Parameter b | Parameter c | Parameter d | Parameter e | Ergebnis |
|---|---|---|---|---|---|
2 | 120215 | UTC | 2015-02-12 00:00:00.0 (UTC) | ||
6 | 2015021 | 2015-02-01 00:00:00.0 (Europe/Berlin) | |||
6 | 2015022 | 2015-02-15 00:00:00.0 (Europe/Berlin) | |||
7 | 2024031 | 2024-02-26 00:00:00.0 (Europe/Berlin), Montag der Woche, die den 1. März enthält | |||
7 | 2024032 | 2024-03-04 00:00:00.0 (Europe/Berlin) | |||
10 | 20030201T1234 | 2003-02-01 12:34:00.0 (Europe/Berlin) | |||
102 | 20240301 | 2024-03-01 00:00:00.0 (Europe/Berlin) | |||
103 | 21023 | 2021-01-06 00:00:00.0 (Europe/Berlin), EDIFACT-Wochenregeln | |||
103 | 21023 | de_DE | 2021-01-13 00:00:00.0 (Europe/Berlin), ISO-Wochenregeln | ||
105 | 24366 | 2024-12-31 00:00:00.0 (Europe/Berlin) | |||
203 | 202403021345 | 2024-03-02 13:45:00.0 (Europe/Berlin) | |||
204 | 20010203123456 | UTC | 2001-02-03 12:34:56.0 (UTC) | ||
205 | 202403021345+0300 | 2024-03-02 13:45:00.0 (GMT+03:00) | |||
205 | 202403021345P0300 | 2024-03-02 13:45:00.0 (GMT+03:00) | |||
205 | 202403310230M0300 | UTC | 2024-03-31 02:30:00.0 (GMT-03:00), | ||
301 | 0102031234+03 | 2001-02-03 12:34:00.0 (GMT+03:00) | |||
307 | 20010203123456123 | 2001-02-03 12:34:56.123 (Europe/Berlin) | |||
401 | 1234 | 1970-01-01 12:34:00.0 (Europe/Berlin) | |||
405 | 123456 | 1970-01-01 20:34:56.0 (Europe/Berlin) | |||
406 | +0330 | 1970-01-01 00:00:00.0 (GMT+03:30) | |||
501 | 12342345 | until | 1970-01-01 23:45:00.0 (Europe/Berlin) | ||
608 | 20123 | 2012-07-01 00:00:00.0 (Europe/Berlin) | |||
613 | 21023 | 2021-02-21 00:00:00.0 (Europe/Berlin) | |||
615 | 2102 | 2021-01-04 00:00:00.0 (Europe/Berlin), EDIFACT-Wochenregeln | |||
615 | 2102 | de_DE | 2021-01-11 00:00:00.0 (Europe/Berlin), ISO-Wochenregeln | ||
718 | 2001020319040506 | from | 2001-02-03 00:00:00.0 (Europe/Berlin) | ||
718 | 2001020319040506 | until | 1904-05-06 00:00:00.0 (Europe/Berlin) | ||
719 | 202403021345190102032343 | 1 | 2024-03-02 13:45:00.0 (Europe/Berlin) | ||
719 | 202403021345190102032343 | 2 | 1901-02-03 23:43:00.0 (Europe/Berlin) | ||
720 | 1234520123 | from | 1970-01-05 23:45:00.0 (Europe/Berlin), Montag | ||
720 | 1234520123 | until | 1970-01-06 01:23:00.0 (Europe/Berlin), Dienstag |
Fehlerbehandlung
Parameter a | Parameter b | Parameter d | Parameter f | Parameter g | Ergebnis |
|---|---|---|---|---|---|
7 | 2027025 | Abbruch mit Fehler invalid week value for '2027025' with format code '7': 5 (Februar 2027 hat nur vier Wochen). | |||
102 | 20031301 | Abbruch mit Fehler unable to parse '20031301' with format code '102' (Monat 13). | |||
102 | ABC | now | Aktuelles Datum mit Uhrzeit. | ||
102 | true | Leerer Wert, | |||
203 | 202403310230 | Abbruch mit Fehler, da es 02:30 am 31. März 2024 in | |||
203 | 202403310230 | UTC | 2024-03-31 02:30:00.0 (UTC) | ||
801 | 12 | Abbruch mit Fehler unable to parse '12' with format code '801', da der Code eine Zahl darstellt. | |||
801 | 12 | empty | Leerer Zeitstempel mit gesetztem Empty Flag. |