ABAPCONVERT_TIME-STAMP - CONVERT TIME-STAMP

Vendor Master (General Section)   ROGBILLS - Synchronize billing plans  
Diese Dokumentation steht unter dem Copyright der SAP AG.

CONVERT TIME STAMP

Kurzreferenz



Syntax

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

Zusatz:

... DAYLIGHT SAVING TIME dst

Wirkung

Diese Anweisung interpretiert einen in time_stamp angegebenenZeitstempel alsUTC-Referenzzeit,konvertiert diese in das lokale Datum und die lokale Zeit der in tz angegebenen Zeitzone undweist das Ergebnis den Variablen dat, tim und dst zu. Es muss mindestens einer der beiden Zusätze DATE oder TIME angegeben werden.Bei time_stamp und tz handelt es sich umfunktionale Operandenpositionen.

Der Operand time_stamp muss entweder den DatentypTIMESTAMP oderTIMESTAMPL aus dem ABAP Dictionary entsprechend ABAP-Typ p der Länge 8 bzw. p der Länge 11 mit siebenNachkommastellenhaben, das einen gültigen Zeitstempel in der Kurz- bzw. Langform enthält. Falls time_stampkeinen gültigen Zeitstempel enthält, wird der Inhalt von dat und tim nicht geändert und sy-subrc auf 12 gesetzt.

Für tz muss ein Operand vom Typ TIMEZONE aus dem ABAP Dictionary angegeben werden, das eine Zeitzone aus der Spalte TZONE der DatenbanktabelleTTZZ in Großbuchstaben enthält.Ist tz initial, wird keine lokale Zeit berechnet, sondern dat und tim wird dieUTC-Referenzzeit zugewiesen und sy-subrc auf 4 gesetzt. Wird die angegebene Zeitzone nicht inder Datenbanktabelle TTZZ gefunden, wird der Inhalt von dat und tim nicht geändert und sy-subrc auf 8 gesetzt. Ist dasRegelwerk für die angegebene Zeitzone nicht vollständig, kommt es zu einer unbehandelbaren Ausnahme.

Die Rückgabewerte für dat und tim sind vom Datentyp d bzw. t.Für dat und tim müssen passende Datenobjekte angegeben werden, in welchedie Rückgabewerte konvertiert werden können. Falls der Zeitstempel in time_stamp in der Langform vorliegt, werden die Sekundenbruchteile in den Nachkommastellen ignoriert.

Hinweis

Eine Konvertierung von Zeitstempeln für die wegen der Umstellung vom Julianischen auf den GregorianischenKalender 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.

Systemfelder

sy-subrcBedeutung
0Zeitstempel wurde in lokale Zeit der angegebenen Zeitzone konvertiert und den Zielfeldern zugewiesen.
4Zeitstempel wurde den Zielfeldern ohne Konvertierung in eine lokale Zeit zugewiesen.
8Zeitstempel konnte nicht konvertiert werden, da die angegebene Zeitzone nicht in der Datenbanktabelle TTZZ vorhanden ist.
12Zeitstempel konnte nicht konvertiert werden, da time_stamp einen ungültigen Wert enthält.

Hinweise

  • Ein aktueller UTC-Zeitstempel kann mit der Anweisung GET TIME STAMP erzeugt werden.

  • Die aktuelle benutzerbezogene lokale Zeitzone kann dem Systemfeld sy-zonlo entnommen werden.


Zusatz

... DAYLIGHT SAVING TIME dst

Wirkung

Hinter dem optionalen Zusatz DAYLIGHT SAVING TIME muss eine Variable dst vom Typ cder Länge 1 angegeben werden. Falls der in time_stamp enthaltene Zeitstempel fürdie in Zeitzone tz angegebene Zeitzone in der Sommerzeit liegt, wird dst auf den Wert "X", ansonsten auf den Wert " " gesetzt.

Hinweis

Mit dem Rückgabewert für die Sommerzeit in dst können doppelt auftretendelokale 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.

Beispiel

Für die in der Datenbanktabelle TTZZ vorhandene Zeitzone "BRAZIL" ist in der DatenbanktabelleTTZR eine Verschiebung von -3 Stunden gegenüber der UTC-Referenzzeit eingetragen. Das Ende der Sommerzeit ist in der DatenbanktabelleTTZDV auf den 2. Sonntag im März um 02:00Uhr festgelegt, was im Jahr 2003 dem 09. März entspricht. Mit diesen Einstellungen im Regelwerkergeben 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.

DATA: time_stamp TYPE timestamp,
      dat        TYPE d,
      tim        TYPE t,
     tz         TYPE ttzz-tzone,
     dst        TYPE c LENGTH 1.

tz = 'BRAZIL'.
time_stamp = 20030309033000.
CONVERT TIME STAMP time_stamp TIME ZONE tz
        INTO DATE dat TIME tim DAYLIGHT SAVING TIME dst.
WRITE: /(10) dat, (8) tim, dst.

time_stamp = 20030309043000.
CONVERT TIME STAMP time_stamp TIME ZONE tz
        INTO DATE dat TIME tim DAYLIGHT SAVING TIME dst.
WRITE: /(10) dat, (8) tim, dst.

Ausnahmen

Unbehandelbare Ausnahmen

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







SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up   Fill RESBD Structure from EBP Component Structure  
Diese Dokumentation steht unter dem Copyright der SAP AG.


Length: 8330 Date: 20120526 Time: 193554     triton ( 260 ms )