Formatierung und Konvertierung von Datumswerten

Sebastian Bartsch Aktualisiert von Sebastian Bartsch

Eine wiederkehrende Aufgabenstellung ist, dass ein Wert in ein DocuWare Datumsfeld geschrieben werden soll. Leider werden Datumswerte oftmals nicht direkt in einem Format geliefert, welches von einem Computer als solches erkannt wird. Daher ist vor der Weiterverarbeitung eine Umwandlung des Quellwertes in ein für den Computer verständliches Format erforderlich.

In StorageRobot 5 geschieht diese Umwandlung über eine benutzerdefinierte Variable. Mehr Informationen zu den Variablen finden Sie hier: Variablen

Benutzervariable für den konvertierten Wert

  1. Erstellen Sie eine neue Variable basierend auf der System-Variable mit dem Wert der in ein Datum umgewandelt werden soll.
  2. Wählen Sie als Makro den Eintrag Konvertiere Datum und Formatieren aus.
  3. In der Tabelle werden zwei Parameter erwartet. Beide Parameter erwarten jeweils einen Python-Format-String, oder eine .NET Formatzeichenfolge. Beide Formate müssen allerdings von der selben Art sein. Im nächsten Abschnitt gehen wir hierauf näher ein.
    1. outformat entspricht dem Ausgabeformat, also dem Ergebnis der Konvertierung und Formatierung.
    2. informat entspricht dem Format, in dem der Wert vor der Konvertierung vorliegt.
  4. Klicken Sie auf Test, um sich das Ergebnis anzusehen.
  5. Schließen und Speichern Sie den Dialog mit OK.

Beispiele

Sämtliche Makros basieren auf der Scriptingfunktionalität von StorageRobot. Da das Scripting in StorageRobot auf IronPython basiert, werden die meisten aus Python bekannten Formatstrings unterstützt. Alternativ können weiterhin die bekannten .NET Formatzeichenfolgen verwendet werden.

Wert: 20220718 nach 18.07.2022 konvertieren

Variante

outformat

informat

Python

%d.%m.%Y

%Y%m%d

.NET

dd.MM.yyyy

yyyyMMdd

Wert: 07.18.2022 nach 18.07.2022 konvertieren

Beachten Sie hier, dass zwar die deutsche Schreibweise verwendet wurde, jedoch Monat und Tag wie im US-amerikanischen vertauscht sind.

Variante

outformat

informat

Python

%d.%m.%Y

%m.%d.%Y

.NET

dd.MM.yyyy

M.d.yyyy

Wert liegen mit und ohne führende Nullen vor

In Situationen wo das Datum zwar generell vom Format passt, aber gemischt mit und ohne führende Nullen vorliegt, hilft die Konvertierung ebenfalls weiter. Vergeben Sie dafür einfach bei outformat und informat dieselbe Zeichenfolge. Das Makro kümmert sich intern automatisch um die korrekte Konvertierung.

In diesem Fall empfehlen wir die Verwendung der Python Formate. Daher finden Sie hier kein Beispiel für das .NET Format.
Weitere Beispiele

Eingabeformat

Ausgabeformat

Beispiel

%m/%d/%Y %I:%M:%S %p

%d.%m.%Y %H:%M:%S

9/23/2019 2:24:13 PM nach

23.09.2019 14:24:13

yyyy-MM-ddTHH:mm:ss.fffK

dd.MM.yyyy HH:mm:ss

2023-08-02T13:45:32.123+01:00 nach 02.08.2023 14:45:32

Sollte das Datum im Format 2018-08-02T13:45:32.123+01:00 vorliegen, dann lesen Sie bitte in diesem Artikel weiter: XML Datum mit Makro konvertieren

Kurzreferenz zu Formatierungszeichen

Python

Bitte beachten Sie die Groß-/Kleinschreibung, da sich dadurch die Bedeutung der Formatzeichenfolgende ändert.

Mehr Infos hier: https://www.w3schools.com/python/python_datetime.asp

Formatzeichen

Beschreibung

Beispiel

%d

Tag des Monats (00-31)

31

%m

Monat als Zahl (01-12)

12

%y

Jahr, kurz, ohne Jahrhundert (2-stellig)

23

%Y

Jahr, lang, 4-stellig

2023

%H

Stunde 00-23 (24 Stunden Format)

07

%M

Minute (00-59)

42

%S

Sekunde (00-59)

08

IronPython unterstützt keine Datumsausgaben ohne führende Nullen. Varianten wo mittels Minuszeichen hinter dem Prozent die Null entfernt wird, funktioniert unter Windows nicht. Hierfür müssen aufwendigere Skripte selbst implementiert werden.

.NET Formate

Bitte beachten Sie die Groß-/Kleinschreibung, da sich dadurch die Bedeutung der Formatzeichenfolgenden ändert.

Weiterführende Informationen, sowie eine vollständige Übersicht finden Sie unter https://msdn.microsoft.com/de-de/library/8kb3ddd4(v=vs.110).aspx

Formatzeichen

Beschreibung

Beispiel

yyyy

Jahr (4-stellig)

2023

yy

Jahr (2-stellig)

23

MM

Monat (mit führender 0 z.B. 01 - 12)

04

M

Monat (ohne führende 0 z.B. 1 - 12)

4

dd

Tag (mit führender 0 z.B. 01 - 31)

01

d

Tag (ohne führende 0 z.B. 1 - 31)

1

HH

Stunde (mit führender 0 z.B. 00-23)

07

mm

Minute (mit führender 0 z.B. 00-59)

42

ss

Sekunden (mit führender 0 z.B: 00-59)

08

Wie waren wir?

Erstellung von Ablageregeln

Variablen

Support