為什麼將java.util.Date轉換為java.sql.Date會導致日期不準確?
P粉883278265
2023-09-01 09:05:06
<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>
您的格式字串不正確。
請查看
SimpleDateFormat
的文檔:https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/text/SimpleDateFormat. html您應該使用小寫字母 y 和小寫字母 d。
我認為您的轉換應該使用以下模式: