Warum führt die Konvertierung von java.util.Date in java.sql.Date zu ungenauen Datumsangaben?
P粉883278265
2023-09-01 09:05:06
<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>
您的格式字符串不正确。
请查看
SimpleDateFormat
的文档:https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/text/SimpleDateFormat.html您应该使用小写字母 y 和小写字母 d。
我认为您的转换应该使用以下模式: