Ich konvertiere mein Datum mit Timestamp, dass in UTC abgespeichert wird.
Als Zeitzone habe ich sy-zonlo genommen (ich bin hier CET).
Wenn ich mir jetzt Daten über den Selection Screen mit einer Datumsangabe angebe, wandelt mir der FB IB_CONVERT_FROM_TIMESTAMP das Datum in CET um.
D.h. liegt in der Datenbank ein Satz Daten mit der Uhrzeit 14:00 vor, habe ich in meiner ALV Ausgabe, 15 UHr stehen.
Wäre ja kein Problem, sy-zonlo auszutauschen und dann 'UTC' mitzugeben. Dann wäre die Ausgabe für meine Zeitzone wieder richtig.
Das Problem ist jedoch, dass User aus Amerika mit dem Programm arbeiten. Dann wäre die Uhrzeit ja nun auch nicht richtig angeziegt.
wenn der Timestamp in UTC abgespeichert wird, so ist dies unabhängig von der Zeitzone des USERS.
Was soll der User auf dem Bildschirm sehen? Timestamp in UTC oder in Ortszeit?
Bei ersterem ist keine Umrechnung erforderlich.
Bei letzeren ist eine Umrechnung erforderlich. Iin Tabelle USR02-TZONE (system->Benutzervorgaben->eigene Daten) kann der User eine abweichende Zeitzone Pflegen, ansonsten bleibt nur sy-zonlo übrig.
Die Ausgabe war schon richtig. Als Parameter gebe ich sy-zonlo mit (nicht UTC).
Das Problem war die Datenselektion. Habe mir vom Benutzer einen Satz Daten um 11:40 anlegen lassen und dann geguckt, wie es abgespeichert wird. Es wird mit der Uhrzeit 9:40 abgepsiechert. So konnte meine Selektion nihct funktionieren bzw. gibt nur Teilergebnisse zurück, denn um 10:40 CET wurde ja nichts ind er Datenbank (UTC Format) abgelegt.
Also habe ich den FB IB_CONVERT_INTO_TIMESTAMP genommen, der mir das eingegebene Datum in UTC konvertiert und entsprechend die Daten ausgibt.
Siehe da es funktioniert.
Einzige Sache, die mir bei uns aufgefallen ist. Auf dem Testsystem habe ich nur eine Stunde unterschied. uf dem Produktivsystem 2. Hängt wohl irgendwie mit der Sommerzeit etc. zusammen. Aber das ist nicht mein Problem mehr.