Rumah > Java > javaTutorial > Adakah Storan `java.sql.Timestamp` Java Bergantung pada Zon Masa?

Adakah Storan `java.sql.Timestamp` Java Bergantung pada Zon Masa?

Linda Hamilton
Lepaskan: 2024-12-13 13:01:10
asal
848 orang telah melayarinya

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

Adakah Storan java.sql.Timestamp Dipengaruhi oleh Zon Masa?

Dalam JDBC, kelakuan kaedah setTimestamp() dengan java.sql. Cap masa mungkin berbeza-beza berdasarkan pemandu pelaksanaan.

Gelagat Pemandu:

Kebanyakan pemacu mematuhi peraturan yang digariskan dalam javadoc untuk setTimestamp(int parameterIndex, Timestamp x, Kalendar cal). Jika tiada objek Kalendar disediakan, pemacu biasanya menggunakan zon waktu mesin maya yang menjalankan aplikasi.

Storan Cap Masa dalam Pangkalan Data:

Apabila menggunakan setTimestamp( int parameterIndex, Timestamp x) tanpa menyatakan Kalendar, pemacu menukar cap waktu kepada zon waktu VM sebelum menyimpannya dalam pangkalan data. Jika lajur pangkalan data kekurangan maklumat zon waktu, penukaran ini mungkin mengakibatkan kehilangan data zon waktu.

Contoh:

Pertimbangkan zon waktu tempatan GMT 2 dan cap masa UTC "2012-12-25 10:00:00 UTC." Selepas penyimpanan dalam pangkalan data, cap masa muncul sebagai "2012-12-25 12:00:00" (GMT 2). Jika diambil oleh aplikasi dalam GMT 0, cap masa akan ditafsirkan sebagai "2012-12-25 12:00:00 UTC."

Menyimpan Cap Masa dalam Zon Waktu Tertentu:

Untuk menyimpan cap masa dalam zon waktu tertentu, gunakan setTimestamp(int parameterIndex, Cap masa x, Kalendar cal) dengan contoh Kalendar yang diingini (cth., Calendar.getInstance(TimeZone.getTimeZone("GMT")) untuk GMT).

Pendapatan Cap Masa:

Begitu juga, apabila mendapatkan cap masa, pastikan anda menggunakan zon waktu yang sama seperti semasa menyimpan mereka.

Menggunakan java.time.LocalDateTime dengan JDBC 4.2 :

Dalam pemacu yang mematuhi JDBC 4.2, anda boleh menggunakan java.time.LocalDateTime (dan java.time. LocalTime) dengan jenis TIMESTAMP dan TIME melalui kaedah get/set/updateObject. Kelas ini mewakili masa tanpa zon waktu.

Atas ialah kandungan terperinci Adakah Storan `java.sql.Timestamp` Java Bergantung pada Zon Masa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan