搜尋

首頁  >  問答  >  主體

為什麼將java.util.Date轉換為java.sql.Date會導致日期不準確?

<p>我正在將java.util.Date轉換為java.sql.date以便將出生日期插入到mysql資料庫中。 </p> <p>但是,輸入<code>2001-04-03</code>總是導致<code>java.sql.Date</code>為<code>2000-12-31</code>為<code>2000-12-31</code>為<code>2000-12-31</code>為<code> </p> <pre class="brush:java;toolbar:false;">BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Enter dob(YYYY-MM-DD) :"); String date = 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()); </pre> <p>輸入:2001-04-03</p> <p>輸出:2000-12-31</p> <p>期望:2001-04-03</p>
P粉883278265P粉883278265470 天前417

全部回覆(1)我來回復

  • P粉237689596

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

    您的格式字串不正確。

    請查看SimpleDateFormat 的文檔:https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/text/SimpleDateFormat. html

    • 大寫字母 Y:表示週年的模式字母
    • 大寫字母 M:表示年中的月份的模式字母(正確)
    • 大寫字母 D:表示年中的天數的模式字母

    您應該使用小寫字母 y 和小寫字母 d

    • 小寫字母 y:表示年份的模式字母
    • 小寫字母 d:表示月中的天數的模式字母

    我認為您的轉換應該使用以下模式:

    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
    

    回覆
    0
  • 取消回覆