Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menyelesaikan Kesilapan Zon Waktu MySQL dan Java Apabila `useTimezone=true` Gagal?

Bagaimana untuk Menyelesaikan Kesilapan Zon Waktu MySQL dan Java Apabila `useTimezone=true` Gagal?

Patricia Arquette
Lepaskan: 2024-12-01 20:33:12
asal
696 orang telah melayarinya

How to Resolve MySQL and Java Timezone Mismatches When `useTimezone=true` Fails?

Melaraskan Zon Waktu MySQL dalam Sambungan Pangkalan Data dengan Java

Penerangan Masalah:

MySQL sedang beroperasi dalam zon waktu "GMT 8", manakala Tomcat menggunakan "GMT". Percanggahan ini membawa kepada ketidakkonsistenan dalam storan dan pengambilan masa tarikh apabila berinteraksi dengan pangkalan data menggunakan Java. Walaupun menetapkan "useTimezone=true" dan "serverTimezone=GMT" dalam URL sambungan, isu ini berterusan.

Penyelesaian:

Untuk menyelesaikan ketidakpadanan zon waktu, perkara berikut pendekatan disyorkan:

  1. Lumpuhkan Masa Tarikh Legasi Kod:

    Kemas kini URL sambungan untuk memasukkan "useLegacyDatetimeCode=false". Ini akan mengaktifkan kaedah yang lebih baharu dan lebih tepat untuk mengurus cap masa dalam MySQL.

    String url = "jdbc:mysql://localhost/mydb?useLegacyDatetimeCode=false";
    Salin selepas log masuk
  2. Gunakan Kalendar Null untuk Cap Masa:

    Apabila menetapkan cap masa menggunakan kaedah setTimestamp, pastikan tiada objek Kalendar disediakan sebagai parameter ketiga. Langkah ini akan membenarkan objek tarikh diformat mengikut zon waktu pangkalan data.

    getTimestamp(int, Timestamp)
    Salin selepas log masuk
  3. Tentukan Zon Waktu Pelayan (Pilihan):

    Jika MySQL menghadapi kekaburan dalam menentukan zon waktu pelayan, mungkin perlu untuk menyatakannya secara eksplisit dalam sambungan URL.

    String url = "jdbc:mysql://localhost/mydb?useLegacyDatetimeCode=false&serverTimezone=America/New_York";
    Salin selepas log masuk

Dengan melaksanakan langkah-langkah ini, ketidakpadanan zon waktu antara MySQL dan Java boleh dihapuskan, memastikan storan dan pengambilan datetime yang betul dalam pangkalan data.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Kesilapan Zon Waktu MySQL dan Java Apabila `useTimezone=true` Gagal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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