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!