Archiv des Intrexx Live! Forums

Hier sehen Sie die Foreneinträge aus dem Intrexx Live! Forum. Bis November 2016 war es das Forum für alle Fragen rund um die Software Intrexx von United Planet.
Seit November 2016 gibt es ein neues moderiertes Forum, das Intrexx Community Forum. Nutzen Sie bitte unbedingt dieses für aktuelle Fragen, Antworten und Informationen.

Wichtig: Dieses Forum dient als Archiv. Die Einträge beziehen sich oft auf ältere Versionen von Intrexx und entsprechen nicht mehr den aktuellen technischen Gegebenheiten.
Daher sollten alle Inhalte ausschließlich von Experten genutzt werden. Bei unsachgemäßer Anwendung kann es zu zeitaufwändigen Problemen oder Datenverlust kommen.
Übersicht > Intrexx Professional: Programming > Groovy Datum aus DB auslesen ohne Zeitversatz durch Zeitzone

Groovy Datum aus DB auslesen ohne Zeitversatz durch Zeitzone

Hallo zusammen,

im Rahmen eines Projektes wird eine Art Report-Datei zum Ende eines Ablaufes erzeugt. Bestandteil der Report-Datei sind u.a. Datumsangaben aus der Datenbank. Leider ist das Datum in der Report-Datei nicht korrekt. Könnt ihr mir weiterhelfen?

In der Datenbank steht als Datum: 2016-06-13 13:01:54.283
Das korrekte Datum müsste in der Logdatei heißen: 2016-06-13 15:01:54
Mir ist bekannt, dass die Uhrzeit in der Datenbank mit einer anderen als der tatsächlichen Uhrzeit gespeichert wird, doch wie bringe ich das korrekte Datum in die Report-Datei?
Folgende Zeile schreibt das Datum in die Datei:
kommentarFile << "Datum :\t\t\t\t${new SimpleDateFormat('dd.MM.yyyy HHmmss').format(rs.getTimestamp(1))}\r\n"

Öffnet man anschließend die Datei, steht darin eine um 2 Stunden versetzte Uhrzeit (exakt so, wie sie in der DB gespeichert ist):
Datum : 13.06.2016 13:01:54


Durch welchen Befehl bekomme ich den Zeitversatz in den Griff, sodass die korrekte Uhrzeit in die Datei geschrieben wird?

Vorab besten Dank.
Gruß
Zoth
13.06.2016 13:54 von Zoth
Es gibt da auch ein format mit Timezone
sowas sollte gehen
def tz = TimeZone.getTimeZone('GMT')
kommentarFile << "Datum :\t\t\t\t${new SimpleDateFormat('dd.MM.yyyy HHmmss').format(rs.getTimestamp(1), tz)}\r\n"

14.06.2016 12:24 von falkh
Danke falkh, für die info.
Ich habe es probiert. Dabei läuft leider ein Error auf:
Caused by: groovy.lang.MissingMethodException: No signature of method: java.text.SimpleDateFormat.format() is applicable for argument types: (java.sql.Timestamp, sun.util.calendar.ZoneInfo) values: [2016-06-13 13:04:50.47, sun.util.calendar.ZoneInfo[id="GMT",offset=0,dstSavings=0,useDaylight=false,transitions=0,lastRule=null]]
Possible solutions: format(java.lang.Object), format(java.util.Date), format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition), format(java.lang.Object, java.lang.StringBuffer, java.text.FieldPosition), format(java.util.Date, java.lang.StringBuffer, java.text.FieldPosition), format(java.util.Date, java.lang.StringBuffer, java.text.FieldPosition)

Hast du oder jemand eine idee, wie ich ihn beseitigen kann?

Vorab vielen Dank

Gruß
Zoth
14.06.2016 14:28 von Zoth
Versuch mal folgendes, so wie es aussieht gibt's das bei SimpleDateFormat nicht

def sdf = new SimpleDateFormat ("dd.MM.yyyy HHmmss")
sdf.setTimeZone (TimeZone.getTimeZone ("GMT+4"))
kommentarFile << "Datum :\t\t\t\t${sdf.format(rs.getTimestamp(1))}\r\n"


wenn du dich jetzt fragst wieso +4 weil wir doch bei +2 sind, das ist ne gute Frage, wenn man +2 macht bleibt die Zeit bei mir gleich, liegt vielleicht daran dass das Programm denkt dass die Zeit schon in +2 ist, ka.
15.06.2016 08:34 von falkh
Hallo falkh,

vielen Dank für den wertvollen Tip. Gemäß deiner Beschreibung funktioniert es. thumbsup
Auch ich muss GMT+4 statt +2 eintragen. Erklären kann ich's mir nicht, aber so funktioniert es ja.
Danke für die Unterstützung.

Viele Grüße
Zoth
15.06.2016 12:16 von Zoth
Hallo,
noch eine Möglichkeit wäre:
def sdf = new SimpleDateFormat ("dd.MM.yyyy HHmmss")
kommentarFile << "Datum :\t\t\t\t${sdf.format(rs.getTimestampValue(1, TimeZone.getTimeZone('Europe/Berlin')))}\r\n"


Gruß
15.06.2016 20:32 von handw3rker
Zurück | Alles über Intrexx | Impressum | Datenschutzerklärung

Über United Planet
© 2019 United Planet GmbH
Schnewlinstraße 2
79098 Freiburg