Weitere Informationen zu den internen Werten dieser Variablen finden Sie unter "Primitive-Datentypen".
Die Standardmaske ist yyyyMM.
yyyyyyMM
yyyyyy
MM
ddHHmmssffffff
HHmmssff
mmss
HHmm
// NICHT gültig
ddmmssffffff
HHssff
Die Standardmaske ist yyyyMMddHHmmss.
yyyyMMddHHmmss
yyyy
MMss
// NICHT gültig
ddMMssffffff
HHssff
Die Regeln für ein Parsing-Format sind ähnlich wie diejenigen für ein Anzeigeformat - mit Ausnahmen, die in den folgenden Regeln angegeben sind.
Erstellen Sie Ihr eigenes Formatmuster, indem Sie Buchstaben verwenden, um die Komponenten des Datums oder der Zeit anzugeben. Um Buchstaben in die Datums-/Zeitzeichenfolge aufzunehmen, ohne dass Text als Komponente des Datums oder der Zeit geparst wird, schließen Sie den/die Buchstaben in einfache Anführungszeichen ein. Um ein einfaches Anführungszeichen im Datum, der Zeit oder Zeitmarke anzuzeigen, verwenden Sie zwei einfache Anführungszeichen.
Die folgende Tabelle listet die Buchstaben und ihre Werte im Muster auf.
| Buchstabe | Datums- oder Zeitkomponente | Typ | Beispiele |
|---|---|---|---|
| G | Bezeichner für die Zeitrechnung | Text | n. Chr. |
| y | Jahr | Jahr | 1996; 96 |
| M | Monat | Monat | Juli; Jul; 07 |
| w | Kalenderwoche | Zahl | 27 |
| W | Woche des Monats | Zahl | 2 |
| D | Tag des Jahres | Zahl | 189 |
| d | Tag des Monats | Zahl | 10 |
| F | Wochentag | Zahl | 2 |
| E | Wochentag | Text | Dienstag; Die |
| a | Markierung AM/PM für vormittags/nachmittags | Text | PM |
| H | Stunde des Tages (0-23) | Zahl | 0 |
| k | Stunde des Tages (1-24) | Zahl | 24 |
| K | Stunde der 12-Stunden-Uhr (0-11) | Zahl | 0 |
| h | Stunde der 12-Stunden-Uhr (1-12) | Zahl | 12 |
| m | Minute | Zahl | 30 |
| s | Sekunde | Zahl | 55 |
| S | Millisekunden (Ausgabe) | Zahl | 978 |
| f | Millisekunden (Parsing) | Zahl | 978 |
| z | Zeitzone | Allgemeine Zeitzone | Pacific Standard Time; PST; GMT-08:00 |
| Z | Zeitzone | Zeitzone gemäß RFC 822 | -800 |
| C | Jahrhundert | Jahrhundert | 20; 21 |
Wenn derselbe Buchstabe mehrfach hintereinander in einem Muster verwendet wird, bestimmt dies, wie EGL die entsprechenden Zahlen, Buchstaben oder beides in der Zeichenfolge parst. Die Interpretation hängt vom Typ des Buchstaben ab und davon, ob das Muster für die Formatierung oder das Parsing verwendet wird. Die folgende Liste beschreibt die Typen von Buchstaben und wie die unterschiedliche Anzahl dieser Buchstaben beeinflusst, wie sie interpretiert werden.
Ist die Anzahl der Buchstaben im Muster ungleich zwei, wird das Jahr unabhängig von der Zahl der Stellen wie angegeben interpretiert. Wenn Ihrem Wert 01/11/12 beispielsweise das Muster MM/dd/yyyy zugeordnet ist, ergibt das Parsing 'Januar 11, 12 nC'. Wird dasselbe Muster dem Wert 01/02/3 oder 01/02/0003 zugeordnet, ergibt das Parsing 'Januar 2, 3 nC'. Eine Zuordnung des Musters zum Wert 01/02/-3 würde beim Parsing 'Januar 2, 4 vC' ergeben.
Lautet das Muster für das Parsing yy, ermittelt der Parser die vollständige Jahresangabe bezogen auf das aktuelle Jahr. Der Parser geht davon aus, dass die zweistellige Jahresangabe in einem Zeitraum von 80 Jahren vor und 20 Jahren nach dem Zeitpunkt der Verarbeitung liegt. Angenommen, das aktuelle Jahr ist 2007. Wenn Ihrem Wert 01/11/12 das Muster MM/dd/yy zugeordnet ist, ergibt das Parsing 'Januar 11, 2012'. Wird dasselbe Muster dem Wert 05/04/64 zugeordnet, ergibt das Parsing 'Mai 4, 1964'.
t TIMESTAMP( "ssffff" );
s STRING = StrLib.formatTimestamp( t, "ssSSSS" );
GMTOffsetTimeZone = GMT Vorzeichen Stunden Minuten
Beim Parsing werden RFC 822-Zeitzonen ebenfalls akzeptiert.
RFC822TimeZone = Vorzeichen zweistellige Stunde Minuten
zweistellige Stunde muss eine zweistellige Zahl von 00 bis 23 sein. Im Übrigen gelten die Definitionen für den allgemeinen Zeitzonentyp.
Für das Parsing werden auch allgemeine Zeitzonen akzeptiert.
Nachfolgend sind einige Beispiele für Datums- und Zeitmuster angegeben, die nach der US-Ländereinstellung interpretiert wurden. Alle verwenden dasselbe Datum: 4. Juli 2001, 12:08:56 (nachmittags), Pacific Daylight Time.
| Datums- und Zeitmuster | Ergebnis |
|---|---|
| yyyy.MM.dd G 'at' HH:mm:ss z | 2001.07.04 AD at 12:08:56 PDT |
| EEE, MMM d, ''yy | Wed, Jul 4, '01 |
| h:mm a | 12:08 PM |
| hh 'o''clock' a, zzzz | 12 o'clock PM, Pacific Daylight Time |
| K:mm a, z | 0:08 PM, PDT |
| yyyyy.MMMMM.dd GGG hh:mm aaa | 02001.July.04 AD 12:08 PM |
| EEE, d MMM yyyy HH:mm:ss Z | Wed, 4 Jul 2001 12:08:56 -0700 |
| yyMMddHHmmssZ | 010704120856-0700 |
Die Kennungen für das Datums-/Zeitformat können auch Kalenderkennungen enthalten. Diese Kennungen geben ein Kalendersystem an, das EGL verwendet, um eine Datumszeichenfolge für die Eingabe zu parsen oder um eine Datumszeichenfolge für die Ausgabe zu formatieren. EGL führt eine Konvertierung zwischen dem Zeichenfolgedatum für einen angegebenen Kalender und dem internen Wert der DATE-, TIME- oder TIMESTAMP-Variable aus.
| Kalenderkennung | Kalender |
|---|---|
| Bu | Buddhistisch |
| Ch | Chinesisch |
| Gr | Gregorianisch |
| He | Hebräisch |
| Is | Islamisch |
| Ja | Japanisch |
Die Thematik kann schnell komplex werden, weil lokalisierte Datumszeichenfolgen in verschiedenen Kalendersystemen möglicherweise bei anderen Ländereinstellungen nicht ausgegeben werden können. Verschiedene Kalender nutzen unterschiedliche Ausgangspunkte für die Jahreszählung und verschiedene Bezeichnungen für Epochen. Viele von ihnen werden nur in entsprechend lokalisierten Umgebungen richtig angezeigt. Beispiel: In der japanischen Zeitrechnung sind Datumsangaben zum einen auf die Regierungszeiten japanischer Kaiser bezogen, zum anderen aber auch auf den alten julianischen Kalender (der eine Differenz um wenige Tage zum gregorianischen Kalender aufweist und diesem nachläuft).
myDate DATE;
myJapaneseDate STRING;
strLib.defaultDateFormat = "Gryyyy/MM/dd";
myDate = "1912/08/13";
myJapaneseDate = formatDate(myDate,"JaGyy/MM/dd");
Wenn Ihr System
für Japan lokalisiert ist, können Sie strLib.defaultDateFormat so einstellen,
dass der japanische Kalender verwendet wird, und Sie können myDate auf ein japanisches
Kalenderdatum einstellen. EGL parst die Datumszeichenfolge entsprechend dem Standarddatumsformat
und speichert sie als achtstelliges gregorianisches Datum.Die folgende Tabelle enthält Beispiele für gregorianische Datumswerte, die in das oben angegebene Format der japanischen Zeitrechnung konvertiert wurden. Die Namen in eckigen Klammern geben die vier Doppelbytezeichen für eine bestimmte japanische Epoche an.
| Gregorianisches Datum | Datum nach japanischer Zeitrechnung |
|---|---|
| 1868/09/20 | [Meiji]01/09/08 |
| 1912/08/12 | [Meiji]45/07/30 |
| 1912/08/13 | [TaishÅ?]01/07/31 |
| 1927/01/07 | [TaishÅ?]15/12/25 |
| 1927/01/08 | [ShÅ?wa]01/12/26 |
| 1989/01/20 | [ShÅ?wa]64/01/07 |
| 1989/01/21 | [Heisei]01/01/08 |
| 2005/01/14 | [Heisei]17/01/01 |
EGL verwendet die Java™-Version der International Components for Unicode-Bibliotheken (ICU4J), um die erforderlichen Datumskonvertierungen für Eingabe und Anzeige vorzunehmen. EGL speichert die Datumsangaben aber immer im gregorianischen Format (achtstellig). Wenn eine thailändische Anwendung ein Datum im buddhistischen Kalender abruft, speichert EGL dieses Datum im achtstelligen gregorianischen Format - die Konvertierung erfolgt mithilfe von ICU4J. Solange die Anwendung in den Mustern, die sie verwendet, konsistent ist, bleibt dieser Prozess für Programmierer und Benutzer unsichtbar.
| Plattform | Problem |
|---|---|
| COBOL-Generierung |
|
| DB2 | Siehe Eintrag "COBOL-Generierung" in dieser Tabelle. |
| Rich-UI | Siehe Datums- und Zeitunterstützung für Rich-UI. |