Home >Java >javaTutorial >Why Does My SimpleDateFormat Parse Fail When Using 'mm' Instead of 'MM'?

Why Does My SimpleDateFormat Parse Fail When Using 'mm' Instead of 'MM'?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-14 20:23:11334browse

Why Does My SimpleDateFormat Parse Fail When Using

Parsing Date Formatted Strings with SimpleDateFormat

When parsing a date string using SimpleDateFormat, it's crucial to adhere to the correct date and time patterns. A common pitfall is the use of "mm" for months instead of "MM".

Consider the following code:

SimpleDateFormat sf = new SimpleDateFormat("yyyy-mm-dd'T'HH:mm:ss");
String str = "2010-06-13T00:00:00";
Date date = sf.parse(str);
System.out.println(" Date " + date.toString());

Here, we intend to parse the string "2010-06-13T00:00:00" as June 13, 2010. However, the output shows "Wed Jan 13 00:00:00 EST 2010" instead. This occurs because the date format specified in the SimpleDateFormat object uses "mm" for months.

To resolve this issue, we need to replace "mm" with "MM" to indicate months. The corrected code below:

SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
...

With this modification, the code correctly parses the input string as "Wed Jun 13 00:00:00 EST 2010". Remember, the uppercase "MM" in SimpleDateFormat patterns represents months, while "mm" represents minutes.

The above is the detailed content of Why Does My SimpleDateFormat Parse Fail When Using 'mm' Instead of 'MM'?. 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