Rumah  >  Soal Jawab  >  teks badan

Mengapakah penukaran java.util.Date kepada java.sql.Date mengakibatkan tarikh yang tidak tepat?

<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粉883278265P粉883278265415 hari yang lalu373

membalas semua(1)saya akan balas

  • P粉237689596

    P粉2376895962023-09-02 00:55:05

    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");
    

    balas
    0
  • Batalbalas