I am converting java.util.Date to java.sql.date in order to insert date of birth into mysql database.
However, entering 2001-04-03
always results in java.sql.Date
being 2000-12-31
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());
Enter: 2001-04-03
Output: 2000-12-31
Expectation: 2001-04-03
Your format string is incorrect.
Please view the documentation for
SimpleDateFormat
:https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/text/SimpleDateFormat. htmlYou should use lowercase lettersyand lowercase lettersd.
I think your conversion should use the following pattern: