Heim  >  Fragen und Antworten  >  Hauptteil

Warum führt die Konvertierung von java.util.Date in java.sql.Date zu ungenauen Datumsangaben?

<p>Ich konvertiere java.util.Date in java.sql.date, um das Geburtsdatum in die MySQL-Datenbank einzufügen. </p> <p>Die Eingabe von <code>2001-04-03</code> führt jedoch immer zu <code>java.sql.Date</code> </p> <pre class="brush:java;toolbar:false;">BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("Geben Sie das Datum ein (JJJJ-MM-TT) :"); String date = br.readLine(); SimpleDateFormat dateFormat = new SimpleDateFormat("JJJJ-MM-TT"); java.util.Date util_dob = dateFormat.parse(date); java.sql.Date dob = new java.sql.Date(util_dob.getTime()); </pre> <p>Eingabe: 2001-04-03</p> <p>Ausgabe: 2000-12-31</p> <p>Erwartung: 2001-04-03</p>
P粉883278265P粉883278265415 Tage vor371

Antworte allen(1)Ich werde antworten

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

    Antwort
    0
  • StornierenAntwort