Date formatting using Joda time library

datetime, java, jodatime

Solution

The list of valid formats for the constructor you are using are detailed in the javadoc of ISODateTimeFormat, which does not include "mm/dd/yyyy":

datetime = time | date-opt-time time = 'T' time-element [offset] date-opt-time = date-element ['T' [time-element] [offset]] date-element = std-date-element | ord-date-element | week-date-element std-date-element = yyyy ['-' MM ['-' dd]] ord-date-element = yyyy ['-' DDD] week-date-element = xxxx '-W' ww ['-' e] time-element = HH [minute-element] | [fraction] minute-element = ':' mm [second-element] | [fraction] second-element = ':' ss [fraction] fraction = ('.' | ',') digit+ offset = 'Z' | (('+' | '-') HH [':' mm [':' ss [('.' | ',') SSS]]])

You can parse a different format with a DateTimeFormatter (note MM in upper case for month):

DateTimeFormatter fmt = DateTimeFormat.forPattern("MM/dd/yyyy");
DateTime expireDate = fmt.parseDateTime(renewDate);

Problem

In a java class, i get the date as string say "renewDate" from the datepicker-input form in mm/dd/yyyy. When i try to update in the code using joda time library ``` DateTime expireDate = new DateTime(renewDate); // i get error at above line updateOrganization.setRenewdate(expireDate.toDate()); organizationDAO.update(updateOrganization); ``` but if i format the date in the form i.e, from mm/dd/yyyy to yyyy-mm-dd and send it to the java class its working fine. How can i format the date from mm/dd/yy to yyyy-mm-dd at Java class. Input is Stringformat.

Original source