Ansicht
Dokumentation

ABAPCONVERT_DATE_TIME-STAMP - CONVERT DATE TIME-STAMP

ABAPCONVERT_DATE_TIME-STAMP - CONVERT DATE TIME-STAMP

rdisp/max_wprun_time - Maximum work process run time   BAL Application Log Documentation  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

CONVERT INTO TIME STAMP

Kurzreferenz



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


Wirkung

Diese Anweisung konvertiert ein in dat angegebenes Datum, eine in tim angegebene Zeit und eine in dst angegebene Sommerzeitmarkierung der in tz angegebenen Zeitzone in einen Zeitstempel in gepackter Zahl und weist das Ergebnis der Variablen time_stamp zu. Die Konvertierung erfolgt nach dem Regelwerk für Zeitzonen.

Bei dat,tim, dst und tz handelt es sich um funktionale Operandenpositionen.

  • Für dat wird ein Datenobjekt vom Typ d erwartet, das ein gültiges Datum enthält. Operanden anderer Typen werden nach d konvertiert. Falls dat einen ungültigen Wert enthält, wird time_stamp nicht geändert und sy-subrc auf 12 gesetzt. Die wegen der Umstellung vom Julianischen auf den Gregorianischen Kalender nicht vorhandenen Tage vom 5.10.1582 bis zum 14.10.1582 werden hier nicht als ungültige Werte betrachtet. Sie ergeben die gleichen Ergebnisse wie die Konvertierung der vorhandenen Tage vom 15.10.1582 bis zum 24.10.1582.
  • Für tim wird ein Datenobjekt vom Typ t erwartet, das eine gültige Zeit enthält. Operanden anderer Typen werden nach t konvertiert. Falls der Zusatz TIME nicht angegeben ist, wird für tim implizit die initiale Zeit "000000" verwendet. In tim sind nur die Werte 00 bis 23 für die Stunden und 00 bis 59 für die Minuten und Sekunden gültig. Falls tim einen ungültigen Wert enthält, wird time_stamp nicht geändert und sy-subrc auf 12 gesetzt.
  • Für dst kann ein Datenobjekt vom Typ c der Länge 1 angegeben werden, das den Wert "X" oder " " enthält, um das Verhalten der Anweisung bezüglich der Sommerzeit zu steuern.
  • Falls dst den Wert "X" hat, wird der Wert von tim als Zeitangabe Sommerzeit aufgefasst.

  • Falls dst den Wert " " hat, wird der Wert von tim als Zeitangabe in Winterzeit aufgefasst.

  • Falls dst weder den Wert "X" noch " " hat, wird time_stamp nicht geändert und sy-subrc auf 12 gesetzt.

Falls die in tz angegebene Zeitzone keine Sommerzeitregel hat (z.B. bei Angabe von "UTC") hat der Zusatz DAYLIGHT SAVING TIME keine Wirkung. Falls der Zusatz DAYLIGHT SAVING TIME nicht angegeben ist, wird der Wert von dst implizit auf "X" gesetzt, wenn die Angaben in tim und dat in der Sommerzeit liegen und auf " " bei Angaben in der Winterzeit. In der doppelten Stunde bei der Umstellung von Sommerzeit auf Winterzeit wird die Angabe in tim und dat als Zeitangabe in der Sommerzeit aufgefasst und dst auf den Wert "X" gesetzt. Wenn der Wert in dst nicht zu den Angaben in tim und dat passt, wenn also in der Winterzeit der Wert "X" und in der Sommerzeit der Wert " " angegeben wird, wird time_stamp nicht geändert und sy-subrc auf 12 gesetzt.
  • Für tz muss ein zeichenartiges Datenobjekt angegeben werden, das eine Zeitzone aus der DDIC-Datenbanktabelle TTZZ enthält.
  • Ist tz initial, wird bei der Konvertierung in den Zeitstempel keine Zeitverschiebung berechnet. Dann wird sy-subrc auf 4 gesetzt.

  • Wird die angegebene Zeitzone nicht in der DDIC-Datenbanktabelle TTZZ gefunden, wird time_stamp 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.

Für time_stamp kann angegeben werden:

  • Eine vorhandene Variable vom Datentyp TIMESTAMP oder TIMESTAMPL aus dem ABAP Dictionary, entsprechend ABAP-Typ p der Länge 8 bzw. p der Länge 11 mit sieben Nachkommastellen. Wenn time_stamp vom Datentyp TIMESTAMPL für die Langform ist, werden die Sekundenbruchteile in den Nachkommastellen bei der Zuweisung initialisiert.

Wenn dat und tim gültige Werte enthalten, in Kombination mit einer gültigen Zeitzone in tz aber einen ungültigen Zeitstempel ergeben, wird time_stamp nicht geändert und sy-subrc wird auf 12 gesetzt.

Systemfelder

sy-subrc Bedeutung
0 Lokale Zeit der angegebenen Zeitzone wurde in Zeitstempel konvertiert und dem Zielfeld zugewiesen.
4 Zeitangabe wurde ohne Zeitverschiebung in Zeitstempel konvertiert und dem Zielfeld zugewiesen.
8 Zeitangabe konnte nicht konvertiert werden, da die angegebene Zeitzone nicht in der DDIC-Datenbanktabelle TTZZ vorhanden ist.
12 Zeitangabe konnte nicht konvertiert werden, da dat, tim oder dst ungültige oder inkonsistente Werte enthalten.

Hinweise

  • Aktuelle benutzerbezogene lokale Zeitangaben und die zugehörige lokale Zeitzone können den Systemfeldern sy-datlo, sy-timlo und sy-zonlo entnommen werden.
  • Mit der Angabe von Sommer- und Winterzeit hinter DAYLIGHT SAVING TIME können aus gleichen lokalen Zeitangaben innerhalb der doppelten Stunde bei der Umstellung von Sommer- auf Winterzeit unterschiedliche UTC-Zeitstempel erstellt werden.
  • Bei der Umstellung von Winter- auf Sommerzeit wird in der Regel eine Stunde ausgelassen. So wird z.B. in der Zeitzone "CET" im Jahr 2009 am 29.03. die Stunde von 2:00 auf 3:00 Uhr ausgelassen. Wird versucht, eine Zeit während dieser fehlenden Stunde zu konvertieren, wird die Anweisung immer mit dem Wert 12 für sy-subrc abgebrochen, da es diese Zeit bzw. diesen lokalen Zeitstempel nicht gibt.
  • Aus einer gültigen Datums- und Zeitangabe kann ein ungültiger Zeitstempel in der Regel nur erzeugt werden, indem das erste gültige Datum 00010101 mit Zeitzonen östlich von UTC oder das letzte gültige Datum 99991231 mit Zeitzonen westlich von UTC kombiniert wird.
  • 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.

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

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

Ausnahmen

Unbehandelbare Ausnahmen

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






TXBHW - Original Tax Base Amount in Local Currency   CL_GUI_FRONTEND_SERVICES - Frontend Services  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 10787 Date: 20240426 Time: 233026     sap01-206 ( 153 ms )