2012-05-31 8 views
5

En una clase de Java, obtengo la fecha como una cadena que dice "renewDate" desde el formulario datepicker-input en mm/dd/aaaa.Formateo de fecha usando la biblioteca de tiempo Joda

Cuando intento actualizar en el código usando la biblioteca de tiempo joda

DateTime expireDate = new DateTime(renewDate); 
// i get error at above line 
updateOrganization.setRenewdate(expireDate.toDate()); 
organizationDAO.update(updateOrganization); 

pero si puedo dar formato a la fecha en la forma, es decir, desde dd/mm/aaaa al dd-mm-dd y enviarlo a la clase java está funcionando bien.

Cómo puedo formatear la fecha de mm/dd/aa aaaa-mm-dd en la clase Java. La entrada es Stringformat.

+0

¿Qué tipo de datepicker? AWT, SWT, JSF, JS ...? – Thor

+0

Intenta buscar en la API de buscadores de fechas palabras clave como 'patrón'. – JMelnik

Respuesta

15

La lista de formatos válidos para el constructor que está utilizando se detallan en la javadoc of ISODateTimeFormat, que no incluye "dd/mm/aaaa":

datetime = tiempo | fecha-opt en tiempo
tiempo = tiempo elemento de 'T' [compensar]
fecha-opt-time = Fecha de elementos [ 'T' [Tiempo de elementos] [desplazamiento]]
fecha de elementos = STD elemento de fecha | ord-date-element | semana-date-elemento
std-date-elemento = aaaa [ '-' MM [ '-' dd]]
ord-date-elemento = aaaa [ '-' DDD]
semana-date-elemento = xxxx '-W' ww ['-' e]
elemento de tiempo = HH [elemento minuto] | [fracción]
elemento-minuto = ':' mm [segundo elemento] | [fracción]
segundo elemento = ':' ss [fracción]
fracción = ('.' | ',') dígito +
desplazamiento = 'Z' | (('+' | '-') HH [ '' '::' mm [ '' ss [(| '') SSS]]])

puede analizar un formato diferente, con una DateTimeFormatter (nota MM en mayúsculas para el mes):

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

es necesario analizar la fecha usando el método estático parse como el constructor asume la cadena está en el formato ISO

el formato de fecha que necesita es como abajo

DateTimeFormatter fmt = DateTimeFormat.forPattern("MM/dd/yyyy"); 
DateTime expireDate = DateTime.parse(renewDate, fmt); 
Cuestiones relacionadas