2012-02-29 42 views
22

que tiene una fecha en el formato siguiente en la interfaz de usuario ..fecha Convertir a XMLGregorianCalendar

Eg: Thu. 03/01 

que convertirlos a XMLGregorianCalendar como a continuación explican.

final DateFormat format = new SimpleDateFormat("E. M/d"); 
final String dateStr = closeDate; 
final Date dDate = format.parse(dateStr); 

GregorianCalendar gregory = new GregorianCalendar(); 
gregory.setTime(dDate); 

XMLGregorianCalendar dealCloseDate = DatatypeFactory.newInstance() 
.newXMLGregorianCalendar(gregory); 

Mi salida es "3/06/70 05:00 AM" en lugar de "3/06/2011 05:00 AM". ¿Cuál es el cambio requerido para obtener el año apropiado?

+0

@ Hovercraft Full Of Eels ... Pido disculpas por eso. No recibí ninguna respuesta, así que pensé que mi Q no era comprensible y tuve que eliminarlos. Una vez más lo siento – JNPW

Respuesta

50

No mencionó nada sobre cómo se supone que se representará el año en esta conversión de fecha, pero aquí hay algunos pseudocódigos para comenzar. Tenga en cuenta que no tratan explícitamente de la zona horaria en este ejemplo:

final DateFormat format = new SimpleDateFormat("E. M/d"); 
final String dateStr = "Thu. 03/01"; 
final Date date = format.parse(dateStr); 

GregorianCalendar gregory = new GregorianCalendar(); 
gregory.setTime(date); 

XMLGregorianCalendar calendar = DatatypeFactory.newInstance() 
     .newXMLGregorianCalendar(
      gregory); 
0

hice el siguiente código para conseguir el mismo. Puede ser un código extenso pero funciona bien.

def gregorianCalendar = new GregorianCalendar() 
    def xmlGregorianCalendar = newInstance().newXMLGregorianCalendar(gregorianCalendar) 

    if (//past date is needed) { 
     def date = xmlGregorianCalendar.toGregorianCalendar().time 
     def cal = Calendar.getInstance() 
     cal.setTime(date) 
     cal.add(Calendar.DATE,-3); //subtract 3 days 
     date.setTime(cal.getTime().getTime()) 
     gregorianCalendar.setTime(date) 
     xmlGregorianCalendar = newInstance().newXMLGregorianCalendar(gregorianCalendar) 
    } 
Cuestiones relacionadas