Mengapakah penukaran java.util.Date kepada java.sql.Date mengakibatkan tarikh yang tidak tepat?
P粉883278265
P粉883278265 2023-09-01 09:05:06
0
1
431
<p>Saya sedang menukar java.util.Date kepada java.sql.date untuk memasukkan tarikh lahir ke dalam pangkalan data mysql. </p> <p>Walau bagaimanapun, memasukkan <code>2001-04-03</code> sentiasa menghasilkan <code>java.sql.Date</code> </p> <pre class="brush:java;toolbar:false;">BufferedReader br = BufferedReader baharu(InputStreamReader(System.in) baharu); System.out.println("Masukkan dob(YYYY-MM-DD) :"); Tarikh rentetan = br.readLine(); SimpleDateFormat dateFormat = new SimpleDateFormat("YYYY-MM-DD"); java.util.Date util_dob = dateFormat.parse(date); java.sql.Date dob = new java.sql.Date(util_dob.getTime()); </pra> <p>Masuk: 2001-04-03</p> <p>Output: 2000-12-31</p> <p>Jangkaan: 2001-04-03</p>
P粉883278265
P粉883278265

membalas semua(1)
P粉237689596

Rentetan format anda salah.

Sila lihat dokumentasi untuk SimpleDateFormat: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/text/SimpleDateFormat.html

  • Huruf besar Y: huruf corak mewakili ulang tahun
  • Huruf besar M: Huruf corak mewakili bulan dalam tahun(betul)
  • Huruf besar D: Huruf pola mewakili bilangan hari dalam tahun

Anda hendaklah menggunakan huruf kecil y dan huruf kecil d.

  • huruf kecil y: huruf pola mewakili tahun
  • huruf kecil d: huruf pola mewakili hari dalam bulan

Saya rasa transformasi anda harus menggunakan corak berikut:

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan