Home >Java >javaTutorial >How to Correctly Convert a Calendar Date to 'yyyy-MM-dd' Format in Java?
Convert Calendar Date to "yyyy-MM-dd" Format in Java
In Java, converting a calendar date to the "yyyy-MM-dd" format is an essential task for various applications.
Incorrect Approach:
Using the SimpleDateFormat class with the "yyyy-MM-dd" pattern on a Date object obtained from a Calendar may not always yield the desired result. For instance, the following code snippet will produce "Wed Sep 26 00:00:00 IST 2012" instead of "2012-09-26":
Calendar cal = Calendar.getInstance(); cal.add(Calendar.DATE, 1); Date date = cal.getTime(); SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd"); String date1 = format1.format(date);
Correct Approach:
To convert a calendar date to the "yyyy-MM-dd" format correctly, you need to understand the difference between a Date and a LocalDateTime.
Java 8 :
In Java 8 and later, you can use the LocalDateTime class, which represents a date and time without a time zone.
LocalDateTime ldt = LocalDateTime.now().plusDays(1); DateTimeFormatter formmat1 = DateTimeFormatter.ofPattern("yyyy-MM-dd", Locale.ENGLISH); String formatter = formmat1.format(ldt); System.out.println(formatter);
Prior to Java 8:
If you're using Java versions prior to 8, you should consider using the ThreeTen Backport library.
Calendar cal = Calendar.getInstance(); cal.add(Calendar.DATE, 1); SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd"); String formatted = format1.format(cal.getTime());
Remember, while the above code initially produces the desired string "2012-09-26," parsing it back into a Date will result in "Wed Sep 26 00:00:00 EST 2012." This is because Date represents the number of milliseconds since a fixed point in time, and formatting it only modifies its string representation.
The above is the detailed content of How to Correctly Convert a Calendar Date to 'yyyy-MM-dd' Format in Java?. For more information, please follow other related articles on the PHP Chinese website!