ホームページ  >  に質問  >  本文

java.util.Date を java.sql.Date に変換すると日付が不正確になるのはなぜですか?

<p>mysql データベースに生年月日を挿入するために、java.util.Date を java.sql.date に変換しています。 </p> <p>ただし、<code>2001-04-03</code> と入力すると、常に <code>java.sql.Date</code> が <code>2000-12-31</code> になります。 </p> <pre class="brush:java;toolbar:false;">BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("dob(YYYY-MM-DD) を入力してください:"); 文字列日付 = br.readLine(); SimpleDateFormat dateFormat = new SimpleDateFormat("YYYY-MM-DD"); java.util.Date util_dob = dateFormat.parse(date); java.sql.Date dob = 新しい java.sql.Date(util_dob.getTime()); </pre> <p>「2001-04-03</p>」と入力します。 <p>出力: 2000-12-31</p> <p>予想: 2001-04-03</p>
P粉883278265P粉883278265415日前366

全員に返信(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: anniversary を表すパターン文字
    • 大文字
    • M: 年の月を表すパターン文字 (正しい)
    • 大文字
    • D: 年の日数を表すパターン文字
    • 小文字の
    y

    と小文字の d を使用する必要があります。

    小文字
      y
    • : year を表すパターン文字 小文字
    • d
    • : 月の日数を表すパターン文字 変換には次のパターンを使用する必要があると思います:
    • リーリー

      返事
      0
  • キャンセル返事