Unparseable date using DateFormat.parse()

aem, datetime, java, simpledateformat

Solution

The time zone formated as `Z` should be `-0500`, not `-05:00`.

So I'd suggest you to replace

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

with

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

See SimpleDateFormat's javadoc for more details on available formats.

If your jdk doesn't allow the X pattern, you'll have to fix the input string to remove the `:`. This can be done with a regex :

currentDate = currentDate.replaceAll(":(\\d\\d)$", "$1")

Problem

I followed a few other solutions on this site to this dilemma, and I do not have Joda Time installed, but I'm still at a loss as to why this is failing. I also tried removing the colons, as one solution stated, but that did not help. `currentNode.getProperty("jcr:created").getString()` = 2013-03-07T11:57:08.596-05:00 I get this error: java.text.ParseException: Unparseable date: "2013-03-07T11:57:08.596-05:00" ``` <%@page import=" java.util.Date, java.text.SimpleDateFormat, java.text.DateFormat" %> <% DateFormat outputFormat = new SimpleDateFormat("MMMM dd, yyyy"); DateFormat inputFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ"); String currentDate = currentNode.getProperty("jcr:created").getString(); Date date = inputFormat.parse(currentDate); // <-- Failing here String currentDateString = outputFormat.format(date); %> ```

Original source

Related problems