Heim > Java > javaLernprogramm > Hängt der Java-Speicher „java.sql.Timestamp' von der Zeitzone ab?

Hängt der Java-Speicher „java.sql.Timestamp' von der Zeitzone ab?

Linda Hamilton
Freigeben: 2024-12-13 13:01:10
Original
847 Leute haben es durchsucht

Does Java's `java.sql.Timestamp` Storage Depend on the Time Zone?

Wird die Speicherung von java.sql.Timestamp durch die Zeitzone beeinflusst?

In JDBC das Verhalten der Methode setTimestamp() mit java.sql. Der Zeitstempel kann je nach Treiber variieren Implementierung.

Fahrerverhalten:

Die meisten Treiber halten sich an die im Javadoc für setTimestamp(int parameterIndex, Timestamp x, Calendar cal) beschriebenen Regeln. Wenn kein Kalenderobjekt bereitgestellt wird, verwendet der Treiber normalerweise die Zeitzone der virtuellen Maschine, auf der die Anwendung ausgeführt wird.

Zeitstempelspeicherung in der Datenbank:

Bei Verwendung von setTimestamp( int parameterIndex, Timestamp x) ohne Angabe eines Kalenders konvertiert der Treiber den Zeitstempel in die Zeitzone der VM, bevor er ihn in der Datenbank speichert. Wenn in der Datenbankspalte Zeitzoneninformationen fehlen, kann diese Konvertierung zum Verlust von Zeitzonendaten führen.

Beispiel:

Berücksichtigen Sie eine lokale Zeitzone von GMT 2 und ein UTC-Zeitstempel von „2012-12-25 10:00:00 UTC.“ Nach der Speicherung in der Datenbank erscheint der Zeitstempel als „2012-12-25 12:00:00“ (GMT 2). Wenn der Zeitstempel von einer Anwendung in GMT 0 abgerufen wird, wird er als „25.12.2012 12:00:00 UTC“ interpretiert.

Zeitstempel in bestimmten Zeitzonen speichern:

Um Zeitstempel in einer bestimmten Zeitzone zu speichern, verwenden Sie setTimestamp(int parameterIndex, Timestamp x, Calendar cal) mit der gewünschten Kalenderinstanz (z. B. Calendar.getInstance(TimeZone.getTimeZone("GMT")) für GMT).

Zeitstempelabruf:

Ähnlich, Achten Sie beim Abrufen von Zeitstempeln darauf, dass Sie dieselbe Zeitzone wie beim Speichern verwenden sie.

Verwendung von java.time.LocalDateTime mit JDBC 4.2:

In JDBC 4.2-kompatiblen Treibern können Sie java.time.LocalDateTime (und java.time. LocalTime) mit den Typen TIMESTAMP und TIME über die Methoden get/set/updateObject. Diese Klassen repräsentieren Zeit ohne Zeitzonen.

Das obige ist der detaillierte Inhalt vonHängt der Java-Speicher „java.sql.Timestamp' von der Zeitzone ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage