Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Menyimpan Tarikh dengan Cekap Tanpa Masa atau Maklumat Zon Masa dalam Java dan MySQL?

Bagaimana untuk Menyimpan Tarikh dengan Cekap Tanpa Masa atau Maklumat Zon Masa dalam Java dan MySQL?

Barbara Streisand
Lepaskan: 2025-01-22 05:51:12
asal
996 orang telah melayarinya

How to Efficiently Store Dates Without Time or Time Zone Information in Java and MySQL?

Penyimpanan tarikh yang cekap (tanpa maklumat zon masa atau masa) dalam Java dan MySQL

Artikel ini secara elegan akan menyelesaikan masalah cara menyimpan tarikh tanpa maklumat masa dalam Java dan MySQL.

java.time: LocalDate

java.time menyediakan berbilang jenis datetime, dengan LocalDate mewakili tarikh yang tidak mengandungi maklumat masa atau zon waktu. Dalam java.time, tarikh diwakili menggunakan standard ISO 8601, memastikan bahagian tarikh adalah konsisten merentas semua zon waktu.

Pemetaan jenis data MySQL

Apabila menyimpan nilai LocalDate ​​dalam MySQL, jenis data DATE harus digunakan. Jadual berikut menunjukkan pemetaan antara jenis data ANSI SQL dan jenis datetime Java 8:

ANSI SQL 数据类型 Java 8 日期时间类型
DATE LocalDate

Menyimpan LocalDate dalam MySQL

Untuk menyimpan nilai LocalDate ke dalam MySQL, anda boleh menggunakan pernyataan JDBC berikut:

<code class="language-java">PreparedStatement stmt = connection.prepareStatement("INSERT INTO birth_dates (birthdate) VALUES (?)");
stmt.setObject(1, localDate);</code>
Salin selepas log masuk

Apabila data diambil daripada pangkalan data, ia akan sentiasa ditafsirkan sebagai tarikh yang sama tanpa mengira zon waktu pelanggan atau pelayan pangkalan data.

Contoh

Berikut ialah contoh cara menggunakan java.time untuk menyimpan dan mendapatkan tarikh yang tidak mengandungi maklumat masa atau zon waktu:

<code class="language-java">// 创建 LocalDate 对象
LocalDate birthday = LocalDate.of(1990, 1, 1);

// 将其存储到数据库中
PreparedStatement stmt = connection.prepareStatement("INSERT INTO birth_dates (birthdate) VALUES (?)");
stmt.setObject(1, birthday);
stmt.executeUpdate();

// 从数据库中检索生日
ResultSet rs = connection.prepareStatement("SELECT birthdate FROM birth_dates WHERE id = 1").executeQuery();
if (rs.next()) {
    LocalDate retrievedBirthday = rs.getObject("birthdate", LocalDate.class);
    System.out.println(retrievedBirthday); // 输出:1990-01-01
}</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Menyimpan Tarikh dengan Cekap Tanpa Masa atau Maklumat Zon Masa dalam Java dan MySQL?. 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