Home >Java >javaTutorial >How to Correctly Convert a Calendar Date to 'yyyy-MM-dd' Format in Java?

How to Correctly Convert a Calendar Date to 'yyyy-MM-dd' Format in Java?

Barbara Streisand
Barbara StreisandOriginal
2024-12-18 02:53:09232browse

How to Correctly Convert a Calendar Date to

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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn