PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Warum ist mein Zeitstempel in der Zeitzone verschoben?

Wenn eine Datenbank keine Zeitzoneninformationen bereitstellt, sollte der JDBC-Treiber sie so behandeln, als befände sie sich in der lokalen Zeitzone der JVM (siehe PreparedStatement.setDate(int, Date) ):

Das Javadoc und die JDBC-Spezifikation sagen nichts explizit über ResultSet aus usw., aber um konsistent zu sein, wenden die meisten Fahrer diese Regel auch auf Daten an, die aus der Datenbank abgerufen werden. Wenn Sie eine explizite Kontrolle über die verwendete Zeitzone wünschen, müssen Sie die verschiedenen set/getDate/Time/Timestamp verwenden Methoden, die auch einen Calendar akzeptieren Objekt in der richtigen Zeitzone.

Einige Treiber bieten auch eine Verbindungseigenschaft, mit der Sie die Zeitzone angeben können, die beim Konvertieren in die/von der Datenbank verwendet werden soll.