Konvertieren Sie joda.time.DateTime in java.sql.Date und behalten Sie die Zeitzone bei

Ich habe folgendes Szenario:

Swing-Steuerung, die a zurückgibtCalendar ObjektMittlereDateTime Objekt, mit dem ich schwere Datums- / Uhrzeitmanipulationen durchführe (joda)Datenbankverbindung (OraclePreparedStatement) das dauert nur einejava.sql.Date Objekt

Mein Problem ist, dass dieCalendar undDateTime Objekte zeigen das Datum in GMT korrekt an (was ich will), aber wenn ich in konvertierejava.sql.Date Zum Senden an die Datenbank wird das Datum in die lokale Zeitzone konvertiert.

Zum Beispiel:

Calendar undDateTime are 2012-08-13T23: 59: 59.000Z (korrekte GMT)Resultierendjava.sql.Date ist 2012-08-14 (falsches lokales UTC + 2 Datum)

Unten ist der Code, mit dem ich die Konvertierung durchführe.

DateTime dateGmt = new DateTime(calendarGmt.getTimeInMillis(), DateTimeZone.UTC);
java.sql.Date sqlDate = new java.sql.Date(dateGmt.getMillis());

Ich weiß nicht, wie ich eine erstellen solljava.sql.Date Objekt unter Beibehaltung der richtigen Zeitzone. Es ist auch durchaus möglich, dass ich eine falsche Konvertierung durchführe.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage