Ansicht
Dokumentation

ABAPCONVERT_UTCLONG - CONVERT UTCLONG

ABAPCONVERT_UTCLONG - CONVERT UTCLONG

BAL_S_LOG - Application Log: Log header data   Addresses (Business Address Services)  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

CONVERT UTCLONG

Kurzreferenz



CONVERT UTCLONG time_stamp
        INTO $[DATE dat$]
             $[TIME tim $[FRACTIONAL SECONDS fs$]$]
             $[DAYLIGHT SAVING TIME dst$]
             TIME ZONE tz.


Wirkung

Diese Anweisung konvertiert den in einem Zeitstempelfeld time_stamp enthaltenen Zeitstempel 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, TIME oder DAYLIGHT SAVING TIME angegeben werden. Die Konvertierung erfolgt nach dem Regelwerk für Zeitzonen.

Bei time_stamp handelt es sich um eine zeitstempelartige Ausdrucksposition, bei tz handelt es sich um eine funktionale Operandenposition.

  • Der Operand time_stamp muss vom Typ utclong sein, der einen gültigen Zeitstempel enthält. Falls time_stamp keinen gültigen Zeitstempel enthält, kommt es zu einer behandelbaren Ausnahme der Klasse CX_SY_CONVERSION_NO_DATE_TIME.
  • 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.

  • Wird die angegebene Zeitzone nicht in der DDIC-Datenbanktabelle TTZZ gefunden, kommt es zu einer behandelbaren Ausnahme der Klasse CX_SY_CONVERSION_NO_DATE_TIME, es sei denn der Zeitstempel ist initial.

  • 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 vom Typ d.

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

  • An tim wird die lokale Zeit ohne die Sekundenbruchteile als Rückgabewert vom Datentyp t zugewiesen. Für tim kann angegeben werden:
  • Eine vorhandene Variable vom Typ t.

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

  • An fs werden die Sekundenbruchteile als Rückgabewert des Datentyps decfloat34 zugewiesen. Für fs kann angegeben werden:
  • Eine vorhandene Variable vom Typ decfloat34.

  • Eine Inline-Deklaration DATA(var) oder FINAL(var), wobei eine Variable vom Datentyp decfloat34 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.

Ein initialer Zeitstempel erzeugt unabhängig von der angegebenen Zeitzone typabhängige Initialwerte in allen Zielfeldern. Wenn der Zeitstempel den minimalen Wert "0001-01-01T00:00:00,0000000" hat oder in der letzten möglichen Sekunde "9999-12-31T23:59:59,fffffff" liegt, wird keine Zeitverschiebung berechnet. Ein Zeitstempel, dessen Wert größer gleich der letzten Sekunde ist bzw. zwischen "9999-12-31 23:59:59,0000000" und "9999-12-31 23:59:59,9999999" liegt, wird wie der Maximalwert "9999-12-31 23:59:59,9999999" behandelt.

Wenn time_stamp einen gültigen Wert enthält, in Kombination mit einer gültigen Zeitzone in tz aber ein ungültiges Datum ergibt, kommt es zu einer behandelbaren Ausnahme der Klasse CX_SY_CONVERSION_NO_DATE_TIME.

Hinweise

  • Ein aktueller UTC-Zeitstempel kann mit der eingebauten Funktion utclong_current 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 können ein ungültiges Datum und die zugehörige Ausnahme 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 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.
  • Die Anweisung CONVERT UTCLONG setzt nicht den Rückgabewert sy-subrc.

Beispiel

Für die in der DDIC-Datenbanktabelle TTZZ vorhandene Zeitzone "EST" ist in der DDIC-Datenbanktabelle TTZR eine Verschiebung von -5 Stunden gegenüber der UTC-Referenzzeit eingetragen. Das Ende der Sommerzeit ist in der DDIC-Datenbanktabelle TTZDV über den Schlüssel "USA" auf den ersten Sonntag im November um 02:00 Uhr festgelegt, was im Jahr 2019 dem 03. November entspricht. Mit diesen Einstellungen im Regelwerk ergeben die beiden folgenden Konvertierungen beide Male die gleiche lokale Zeit "01:30:00", wobei bei der ersten Konvertierung angezeigt wird, dass sich die Zeit noch in der Sommerzeit befindet.

Zeitstempel in Zeitstempelfeld konvertieren.

Ausnahmen

Behandelbare Ausnahmen

CX_SY_CONVERSION_NO_DATE_TIME

  • Ursache: Unzulässige Zeitzone in tz.
    Laufzeitfehler: INVALID_TIME_ZONE
  • Ursache: Es würde ein ungültiges Datum erzeugt.
    Laufzeitfehler: LOCAL_TIMESTAMP_OUT_OF_RANGE
  • Ursache: Der angegebene Zeitstempel ist ungültig.
    Laufzeitfehler: INVALID_UTCLONG

Unbehandelbare Ausnahmen

  • Ursache: Unvollständiges Regelwerk für die angegebene Zeitzone.
    Laufzeitfehler: CONVERT_TSTMP_INCONSISTENT_TAB
  • Ursache: Es wird ein Operand mit einem falschen Typ verwendet.
    Laufzeitfehler: TCHK_TYPE_LOAD





rdisp/max_wprun_time - Maximum work process run time   BAL_S_LOG - Application Log: Log header data  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 11404 Date: 20240419 Time: 232147     sap01-206 ( 122 ms )