Datum/Uhrzeit als Zeichenfolgedaten

Dieser Abschnitt enthält Informationen, wie Sie das Datum/Uhrzeit-Format mit einer Zeichenfolge aus Musterbuchstaben festlegen können.

Bei der Konvertierung eines Datums oder einer Uhrzeit in eine Zeichenfolge kann ein Formatmuster angewendet werden, über das die Konvertierung gesteuert wird. Dies gilt für die Formatierung einer Zeichenfolge aus einem Datum oder einer Uhrzeit bzw. für die Auswertung einer Zeichenfolge zur Konvertierung in ein Datum oder eine Uhrzeit.

Während der Formatierung (z. B. eines Datum/Uhrzeit-Formats in eine Zeichenfolge) wird ein Muster oder eine Gruppe von Tokens durch die entsprechende Quelle ersetzt. In Abbildung 1 wird dieser Vorgang dargestellt.

Abbildung 1. Verwendung eines Musters zum Formatieren einer Datum/Uhrzeit-Quelle, um eine Zeichenfolgeausgabe zu erzeugen

Beim Auswerten einer Zeichenfolge (z. B. um sie in ein Datum/Uhrzeit-Format zu konvertieren) wird das Muster oder die Gruppe von Tokens verwendet, um zu ermitteln, welcher Teil des Datum/Uhrzeit-Zielformats durch welchen Teil der Zeichenfolge dargestellt wird. In Abbildung 2 wird dieser Vorgang dargestellt.

Abbildung 2. Verwendung eines Musters zum Auswerten einer Zeichenfolge, um eine Datum/Uhrzeit-Ausgabe zu erzeugen

Syntax

Das Ausdrucksmuster wird wie folgt definiert:

   .--------------.
   | .- -.        |
   V V   |              |
  >------+-Symbol-+->
         '-Zeichenfolge-'

Dabei gilt:
Symbol
Ist ein Zeichen im Zeichensatz adDeEFGhHIkKmMsSTUwWyYzZ.
Zeichenfolge
Ist eine Zeichenfolge in einfachen Anführungszeichen. Wenn innerhalb der Zeichenfolge ein einfaches Anführungszeichen erforderlich ist, können zwei einfache Anführungszeichen, “''”, gesetzt werden.

Zeichen zum Formatieren eines Datum/Uhrzeit-Formats als eine Zeichenfolge

In der folgenden Tabelle sind die zulässigen Zeichen aufgelistet, die in einem Muster zur Formatierung bzw. Auswertung von Zeichenfolgen für ein Datum/Uhrzeit-Format verwendet werden können.

Symbol Beschreibung Darstellung Beispiele
a Kennzeichnung für Vormittag (AM) oder Nachmittag (PM) Text Eingabe: am, AM, pm, PM. Ausgabe: AM oder PM
d Tag in Monat (1-31) Zahl 1, 20
dd Tag in Monat (01-31) Zahl 01, 31
D Tag in Jahr (1-366) Zahl 3, 80, 100
DD Tag in Jahr (01-366) Zahl 03, 80, 366
DDD Tag in Jahr (001-366) Zahl 003
e Tag in Woche (1-7) Nummer 26
EEE Tag in Woche Text Di
EEEE Tag in Woche Text Dienstag
F Wochentag in Monat (1-5) Zahl 2 (für zweiten Mittwoch im Juli)3
G Jahrhundert Text v.Chr oder n.Chr
h Stunde in AM oder PM (1-12) Zahl 6
hh Stunde in AM oder PM (01-12) Zahl 06
H Stunde des Tages im 24-Stunden-Format (0-23) Zahl 77
HH Stunde des Tages im 24-Stunden-Format (00-23) Zahl 077
I ISO8601 Datum/Uhrzeit (bis JJJJ-MM-TT'T'HH:mm:ss.SSSZZZ) Text 2004-10-07T12:06:56.568+01:005
IU ISO8601 Datum/Uhrzeit (wie oben, aber ZZZ mit Ausgabe "Z", wenn die Zeitzone +00:00 ist) Text 2004-10-07T12:06:56.568+01:00, 2003-12 -15T15:42:12.000Z 5
k Stunde des Tages im 24-Stunden-Format (1-24) Zahl 87
k Stunde des Tages im 24-Stunden-Format (01-24) Zahl 087
K Stunde in AM oder PM (0-11) Zahl 9
KK Stunde in AM oder PM (00-11) Zahl 09
m Minute Zahl 4
mm Minute Zahl 04
M Monatszahl Zahl 5, 12
MM Monatszahl Zahl 05, 12
MMM Monatsname Text Jan, Feb
MMMM Monatsname Text Januar, Februar
s Sekunden Zahl 5
ss Sekunden Zahl 05
S Zehntelsekunde Zahl 78
SS Hundertstelsekunde Zahl 708
SSS Millisekunde Zahl 7008
SSSS 1/10.000 Tausendstelsekunden Zahl 70008
SSSSS 1/100.000 Tausendstelsekunden Zahl 700008
SSSSSS 1/1.000.000 Tausendstelsekunden Zahl 7000008
T ISO8601 Uhrzeit (bis HH:mm:ss.SSSZZZ) Text 12:06:56.568+01:005
TU ISO8601 Uhrzeit (wie oben, aber Zeitzone +00:00 wird durch 'Z' ersetzt) Text 12:06:56.568+01:00, 15:42:12.000Z5
w Woche in Jahr Zahl 7, 532
ww Woche in Jahr Zahl 07, 532
W Woche in Monat Zahl 24
yy Jahr Zahl 961
jjjj Jahr Zahl 19961
YY Jahr: nur mit Woche in Jahr verwenden Zahl 962
YYYY Jahr: nur mit Woche in Jahr verwenden Zahl 19962
zzz Zeitzone (abgekürzter Name) Text GMT
zzzz Zeitzone (vollständiger Name) Text Greenwich Mean Time
Z Zeitzone (+/-n) Text +3
ZZ Zeitzone (+/-nn) Text +03
ZZZ Zeitzone (+/-nn:nn) Text +03:00
ZZZU Zeitzone (wie ZZZ, "+00:00" wird durch "Z" ersetzt) Text +03:00, Z
ZZZZ Zeitzone (GMT+/-nn:nn) Text GMT+03:00
ZZZZZ Zeitzone (wie ZZZ, aber ohne Doppelpunkt) (+/-nnnn) Text +0300
' Auslassung für Text   'Benutzertext'
'' (zwei einfache Anführungszeichen) einfaches Anführungszeichen in ausgelassenem Text   'z.''B.'

Die Darstellung des Datum/Uhrzeit-Objekts richtet sich danach, welche Symbole Sie wie folgt festlegen:

Anmerkungen: Die nachfolgenden Punkte erläutern die Anmerkungen in der oben gezeigten Tabelle:
  1. Jahr wird als Sonderfall behandelt:
    • Wenn die Anzahl von y bei der Ausgabe 2 lautet, wird das Jahr auf zwei Ziffern gekürzt. Beispiel: yyyy ergibt 1997, yy ergibt 97.
    • Bei der Eingabe bestimmt die Nachrichtengruppeneigenschaft Beginn der Datumsangaben mit zweistelliger Jahreszahl das Jahrhundert bei zweistelligen Jahreszahlen. Wenn beispielsweise Beginn der Datumsangaben mit zweistelliger Jahreszahl auf 53 steht, wird das Jahr 97 mit 1997 angezeigt, das Jahr 52 mit 2052 und das Jahr 53 mit 1953.
  2. Das Beginn eines neuen Jahres liegt häufig in der Mitte der Woche. Wenn die Anzahl der Wochentage kleiner ist als der durch die Eigenschaft Tage in der ersten Woche im Jahr der physischen Nachrichtengruppe angegebene Wert, wird die Woche als letzte Woche des vorherigen Jahres gesehen; daher startet Woche 1 einige Tage nach Beginn des neuen Jahres. Ist die Anzahl der Tage in dieser größer als der hier angegebene Wert, wird die Woche als erste Woche im neuen Jahr interpretiert; die erste Woche im neuen Jahr beginnt daher einige Tage vor Beginn des neuen Jahres. Beispiel: Der Montag der Woche 1 im Jahr 2004 (2004 01 Montag, dabei sind 'Tage in der ersten Woche im Jahr' = 4 und 'Erster Wochentag' = Montag ) mit der Formatzeichenfolge YYYY ww EEEE ist der 29. Dezember 2003. Wenn Sie Y verwenden, werden der Tag der Woche (E) und die Woche in Jahr (w) bei Bedarf angepasst, um anzuzeigen, dass das Datum auf das nächste Jahr fällt.

    Wenn Sie das y-Symbol verwenden, wird keine Anpassung ausgeführt. Für Daten um das Jahresende herum könnten unvorhersehbare Ergebnisse auftreten. Die Zeichenfolge 2002 01 Montag ist beispielsweise wie folgt formatiert:

    • Der Montag von Woche 1 im Jahr 2002 mit der Formatzeichenfolge YYYY ww EEEE wird korrekt als 31. Dezember 2001 wiedergegeben.
    • Der Montag von Woche 1 im Jahr 2002 mit der Formatzeichenfolge yyyy ww EEEE wird nicht korrekt als 30. Dezember 2002 wiedergegeben.

    Y darf nur zusammen mit w verwendet werden. Wenn Sie Y ohne w angeben, wird das Jahr ignoriert. Wenn Sie beispielsweise YYYY-MM-dd als Format für 1996-03-01 angeben, lautet das Ergebnis 2005-03-01, da die Jahreseingabe ignoriert und das aktuelle Jahr angenommen wird.

  3. Der 11. Juli 2001 ist der zweite Mittwoch im Juli und kann als 2001 Juli Mittwoch 2 mit der Formatzeichenfolge yyyy MMMM EEEE F angegeben werden. Dies ist nicht dasselbe wie Mittwoch in Woche 2 im Juli 2001, welches der 4. Juli 2001 wäre.
  4. Die erste und letzte Woche in einem Monat können Tage aus den angrenzenden Monaten enthalten. Dienstag 31. Juli 2001 könnte beispielsweise alsDienstag in Woche eins im August 2001 ausgedrückt werden. Dies wäre 2001 08 1 Dienstag mit der Formatzeichenfolge yyyy MM W EEEE.
  5. Siehe Abschnitt ISO8601, Datum/Uhrzeit-Tokens I und T.
  6. Beim Feld 'Tag in Woche' handelt es sich um die numerische Position in einer Woche, die sich je nach dem Wert der Eigenschaft Erster Wochentag der physische Nachrichtengruppe ändert. Beispielsweise ist der dritte Wochentag Mittwoch, dabei wurde für die physische Nachrichtengruppeneigenschaft Erster Wochentag 'Montag' festgelegt.
  7. 24-Stunden-Felder können zu einer mehrdeutigen Zeitangabe führen, wenn es zu Konflikten mit einem Feld im Format 'am/pm' kommt.
  8. Sekundenbruchteile: Die Länge muss implizit der Anzahl der Formatsymbole bei der Eingabe entsprechen. Die Ausgabe wird auf die angegebene Länge gerundet.
  9. Für lange Zeitzonen sollte das Format 'Continent/City' verwendet werden. Ebenso sollte auf Unix-Systemen die TZ-Umgebungsvariable mit Hilfe des Formats 'Continent/City' angegeben werden.

ISO8601, Datum/Uhrzeit-Tokens I und T

Wenn Ihre Wert für Datum und Uhrzeit dem ISO8601:2000-Standard zur 'Darstellung von Datum und Uhrzeit' entsprechen, sollten Sie die Verwendung der Formatierungssymbole I und T in Erwägung ziehen. Diese entsprechen einer Untermenge des ISO8601-Standards, nämlich:

Diese Symbole sollten nur allein verwendet werden.

Bei der Ausgabe wird abhängig vom logischen Datentyp folgendes Format angewendet:

Logischer MRM-Datentyp Logischer ESQL-Datentyp Ausgabeformat
xsd:dateTime TIMESTAMP oder GMTTIMESTAMP jjjj-MM-tt'T'HH:mm:ss.SSSZZZ
xsd:date DATE jjjj-MM-tt
xsd:gYear INTERVAL jjjj
xsd:gYearMonth INTERVAL jjjj-MM
xsd:gMonth INTERVAL --MM
xsd:gmonthDay INTERVAL --MM-dd
xsd:gDay INTERVAL ---dd
xsd:time TIME / GMTTIME 'T'HH:mm:ss.SSSZZZ
Anmerkung:
  • Bei der Eingabe akzeptieren I und T '+00:00' und 'Z' zur Anzeige eines Zeitunterschiedes von Null zur Coordinated Universal Time (UTC), generieren bei der Ausgabe aber stets '+00:00'. Wenn immer 'Z' bei der Ausgabe generiert werden soll, sollten Sie stattdessen die alternativen Formatierungssymbole IU oder TU verwenden.
  • ZZZ ergibt stets die Ausgabe von '+00:00', um einen Zeitunterschied von Null zur Coordinated Universal Time (UTC) anzuzeigen. Wenn immer 'Z' bei der Ausgabe generiert werden soll, sollten Sie stattdessen die alternative Form ZZZU verwenden.

UTC-Eingabeformat für die Ausgabe verwenden

Ein Element oder Attribut des logischen Typs xsd:dateTime oder xsd:time, das eine Datum/Uhrzeit-Angabe als Zeichenfolge enthält, kann die UTC-Zeit (Consolidated Universal Time) angeben, indem entweder das Zeichen Z oder Zeitzone +00:00 verwendet wird. Bei der Eingabe erkennt der MRM-Parser das UTC-Format solcher Elemente und Attribute. Bei der Ausgabe können Sie über die Datum/Uhrzeit-Eigenschaft (dateTime) des Elements oder Attributs angeben, ob Z oder +00:00 angezeigt werden soll. Alternativ können Sie das UTC-Eingabeformat beibehalten, indem Sie die Nachrichtengruppeneigenschaft Benutzen Sie das UTC-Format der Eingabe für die Ausgabe aktivieren. Wenn diese Eigenschaft aktiviert ist, wird das UTC-Format unverändert in die Ausgabenachricht übernommen und überschreibt das durch die Datum/Uhrzeit-Formateigenschaft implizierte Format.

Beispiele

Die folgende Tabelle enthält Beispiele für Datum/Uhrzeit-Formate:

Formatmuster Ergebnis
"yyyy.MM.dd'um'HH:mm:ss ZZZ" 1996.07.10 um 15:08:56 -05:00
EEE, MMM d, "yy" Mit, Juli 10, '96
"h:mm a" 8:08 PM
"hh 'Uhr' a, ZZZZ" 09 Uhr AM, GMT+09:00
"K:mm a, ZZZ" 9:34 AM, -05:00
"yyyy.MMMMM.dd hh:mm aaa" 1996.Juli.10 12:08 PM
Zugehörige Konzepte
Nachrichten modellieren
Das Nachrichtenmodell
Zugehörige Tasks
Nachrichtenmodelle entwickeln
Mit Nachrichtendefinitionsdateien arbeiten
Mit Nachrichtenmodellobjekten arbeiten
Zugehörige Verweise
Nachrichtenmodellverweisinformationen
Eigenschaften von Nachrichtenmodellobjekten
Bemerkungen | Marken | Downloads | Bibliothek | Unterstützung | Rückmeldung
Copyright IBM Corporation 1999, 2006 Letzte Aktualisierung: 23. Aug. 2006
ad09291_