Ansicht
Dokumentation

ABAPCONVERT_TIME-STAMP - CONVERT TIME-STAMP

ABAPCONVERT_TIME-STAMP - CONVERT TIME-STAMP

SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up   CPI1466 during Backup  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

CONVERT TIME STAMP

Kurzreferenz



CONVERT TIME STAMP time_stamp TIME ZONE tz
        INTO $[DATE dat$]
             $[TIME tim$] $[DAYLIGHT SAVING TIME dst$].

Wirkung

Diese Anweisung interpretiert den Inhalt einer gepackten Zahl time_stamp als Zeitstempel, konvertiert ihn in das lokale Datum und die lokale Zeit der in tz angegebenen Zeitzone und weist das Ergebnis den Variablen dat, tim und dst zu. Es muss mindestens einer der Zusätze DATE oder TIME angegeben werden. Die Konvertierung erfolgt nach dem Regelwerk für Zeitzonen.

Bei time_stamp und tz handelt es sich um funktionale Operandenpositionen.

  • Der Operand time_stamp muss vom Typ TIMESTAMP oder TIMESTAMPL aus dem ABAP Dictionary, entsprechend ABAP-Typ p der Länge 8 bzw. p derLänge 11 mit sieben Nachkommastellen sein. Je nach Datentyp wird der Inhalt entweder als Zeitstempel in der Kurzform der als Zeitstempel in der Langform interpretiert. Andere Datentypen können nicht angegeben werden. Falls time_stamp keinen gültigen Zeitstempel enthält, wird der Inhalt von dat und tim nicht geändert und sy-subrc auf 12 gesetzt.
  • Der Operand tz muss zeichenartig sein und eine Zeitzone aus der DDIC-Datenbanktabelle TTZZ enthalten.
  • Ist tz initial, wird der UTC-Zeitstempel nicht in eine andere Zeitzone konvertiert. Das lokale Datum und die lokale Zeit in den Zielfeldern entsprechen der UTC-Referenzzeit. Dann wird sy-subrc auf 4 gesetzt.

  • Wird die angegebene Zeitzone nicht in der DDIC-Datenbanktabelle TTZZ gefunden, wird der Inhalt von dat und tim nicht geändert und sy-subrc auf 8 gesetzt.

  • Ist das Regelwerk für die angegebene Zeitzone nicht vollständig, kommt es zu einer unbehandelbaren Ausnahme.

  • An dat wird das lokale Datum als Rückgabewert vom Datentyp d zugewiesen. Für dat kann angegeben werden:
  • Eine vorhandene Variable, in die der Rückgabewert konvertiert werden kann.

  • Eine Inline-Deklaration DATA(var) oder FINAL(var), wobei eine Variable vom Datentyp d deklariert wird.

  • An tim wird die lokale Zeit als Rückgabewert vom Datentyp t zugewiesen. Falls der Zeitstempel in time_stamp in der Langform vorliegt, werden die Sekundenbruchteile in den Nachkommastellen ignoriert. Für tim kann angegeben werden:
  • Eine vorhandene Variable, in die der Rückgabewert konvertiert werden kann.

  • Eine Inline-Deklaration DATA(var) oder FINAL(var), wobei eine Variable vom Datentyp t deklariert wird.

  • An dst wird der Wert "X" zugewiesen, wenn der in time_stamp enthaltene Zeitstempel für die in tz angegebene Zeitzone in der Sommerzeit liegt. Ansonsten wird der Wert " " zugewiesen. Für dst kann angegeben werden:
  • Eine vorhandene Variable vom Typ c der Länge 1.

  • Eine Inline-Deklaration DATA(var) oder FINAL(var), wobei eine Variable vom Datentyp c der Länge 1 deklariert wird.

Eine Konvertierung von Zeitstempeln für die wegen der Umstellung vom Julianischen auf den Gregorianischen Kalender eigentlich nicht vorhandenen Tage vom 5.10.1582 bis zum 14.10.1582 ergibt die gleichen Ergebnisse wie die Konvertierung der vorhandenen Tage vom 15.10.1582 bis zum 24.10.1582.

Wenn time_stamp einen gültigen Wert enthält, in Kombination mit einer gültigen Zeitzone in tz aber ein ungültiges Datum ergibt, werden dat und tim nicht geändert und sy-subrc wird auf 12 gesetzt.

Systemfelder

sy-subrc Bedeutung
0 Zeitstempel wurde in lokale Zeit der angegebenen Zeitzone konvertiert und den Zielfeldern zugewiesen.
4 Zeitstempel wurde den Zielfeldern ohne Konvertierung in eine lokale Zeit zugewiesen.
8 Zeitstempel konnte nicht konvertiert werden, da die angegebene Zeitzone nicht in der DDIC-Datenbanktabelle TTZZ vorhanden ist.
12 Zeitstempel konnte nicht konvertiert werden, da time_stamp einen ungültigen Wert enthält oder in Kombination mit der Zeitzone zu einem ungültigen Datum führt.

Hinweise

  • Ein aktueller UTC-Zeitstempel kann mit der Anweisung GET TIME STAMP erzeugt werden.
  • Die aktuelle Benutzerzeitzone kann dem Systemfeld sy-zonlo entnommen werden.
  • Mit dem Rückgabewert für die Sommerzeit in dst können doppelt auftretende lokale Zeitangaben unterschieden werden, die dadurch entstehen können, wenn UTC-Zeitstempel innerhalb der doppelten Stunde bei der Umstellung von Sommer- auf Winterzeit in die lokale Zeit konvertiert werden.
  • Aus einem gültigen Zeitstempel kann ein ungültiges Datum in der Regel nur entstehen, indem der erste gültige Tag mit Zeitzonen westlich von UTC oder der letzte gültige Tag mit Zeitzonen östlich von UTC kombiniert wird.
  • Eine initiale gepackte Zahl mit dem Wert 0 ist kein gültiger Zeitstempel sondern führt zum Wert 12 in sy-subrc.
  • Eine initiale Zeitzone tz entspricht nur dann der Angabe UTC, wenn die Tabellen des Regelwerks für Zeitzonen für die Zeitzone UTC richtig gefüllt sind.

Beispiel

Das folgende Beispiel zu CONVERT TIME STAMP für Zeitstempel in gepackten Zahlen funktioniert genau wie das Beispiel zu CONVERT UTCLONG für Zeitstempel in Zeitstempelfeldern.

Ausnahmen

Unbehandelbare Ausnahmen

  • Ursache: Inkonsistente Steuertabellen für die Konvertierung.
    Laufzeitfehler: CONVERT_TSTMP_INCONSISTENT_TAB






ROGBILLS - Synchronize billing plans   General Material Data  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 9726 Date: 20240328 Time: 105006     sap01-206 ( 119 ms )