Como convertir un objeto Date a XMLGregorianCalendar en Java

A la hora de programar en Java un cliente para consumir un Web Service, nos da el caso de tener que usar objetos XMLGregorianCalendar. Esto es porque los métodos del Servicio Web contienen parámetros de tipo datetime.

Al obtenerse en nuestra aplicación la estructura del Servicio Web mediante el archivo o url del WSDL, los datos de tipo date, datetime o time pasan a mapearse en nuestro cliente con el tipo XMLGregorianCalendar, de forma que se maneje una estructura XML para java, como pasa con el resto de propiedades del WS.

Lo primero que debemos hacer es importar las librerías necesarias para poder trabajar con XmlGregorianCalendar:

import java.util.GregorianCalendar;
import javax.xml.datatype.DatatypeConfigurationException;
import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.XMLGregorianCalendar;

 

Luego implementamos una función para obtener un objeto XmlGregorianCalendar a partir de un objeto Date:

      /**
     * Devuelve un objeto XMLGregorianCalendar a partir de un objeto Date.
     * @param fecha Objeto Date
     * @return 
     */
    public static XMLGregorianCalendar GetXmlGregorianCalendar(Date fecha)
    {
        GregorianCalendar calendario = new GregorianCalendar();
        XMLGregorianCalendar xmlCalendario = null;
        
        calendario.setTime(fecha);
        
        try {
            xmlCalendario = DatatypeFactory.newInstance().newXMLGregorianCalendar(calendario);
            return xmlCalendario;
        } catch (DatatypeConfigurationException ex) {
            System.out.println(ex.toString());
            return null;
        }        
    }

Podría darse el caso que la fecha que queremos parsear la tengamos en un String en vez de en un objeto Date, pero pasar de un objeto a otro es muy fácil con la función que se explica en:

Convertir de String a Date con Java.

 

1704 visitas.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *