Como usar XMLGregorianCalendar en Java


Hace poco desarrollando un aplicacion en Java el cual consistia en consumir un servicio web para realizar una operación puntual, se me presenta un pequeño detalle; resulta que una de la operaciones de este servicio web tenia dos de los parametros de ingreso con el tipo date y time respectivamente, entonce cuando se realiza la «importación» de toda esta estructura mediante el archivo WSDL, estos tipos de datos pasan a ser del tipo XMLGregorianCalendar, esto debido al mapeo que se proporciona a traves del API JAXB el cual es utilizado para el desarrollo de servicios web, esto con la finalidad de vincular el XML con Java  (mas detalle aqui).

Entonces teniendo la fecha y hora con el formato yyyy-MM-dd y hh:mm:ss respectivamente, vamos a realzar una manera simple de poder setear esta variales de la operacion de este servicio web. Para esto lo primero que tendriamos que hacer seria lo siguiente:

GregorianCalendar gcal = new GregorianCalendar();
XMLGregorianCalendar fec = DatatypeFactory.newInstance().newXMLGregorianCalendar(gcal);
XMLGregorianCalendar hor = DatatypeFactory.newInstance().newXMLGregorianCalendar(gcal);

Entonces de esta manera creamos dos variables (fec y hor) las cuales seran usadas para «setear» la variables de ingreso de la operacion del servicio web. Entonces ahora solo tendrias que llenar esas variables con los valores tanto de fecha a si como de hora, supongamos que tenemos la fecha 2010-04-26 y la hora 17:41:20 entonces solo hariamos lo siguiente

  String fecha_actual = "2010-04-26"
  String hora_actual = "17:45:20"
  String[] fec_part = fecha_atual.split("-");
  String[] hor_part = hora_actual.split(":");

  hor.setHour(Integer.parseInt(hor_part[0]));
  hor.setMinute(Integer.parseInt(hor_part[1]));
  hor.setSecond(Integer.parseInt(hor_part[2]));

  fec.setYear(Integer.parseInt(fec_part[0]));
  fec.setMonth(Integer.parseInt(fec_part[1]));
  fec.setDay(Integer.parseInt(fec_part[2]));

Y listo ya tenemos las variables con los valores necesarios para ser enviadas como parametros al servicio web. Por lo menos esta es una forma simple de poder trabajar con estos tipos de datos, tal vez existe alguna otra, solo me lo comentan. Espero les sirva.

6 comentarios en “Como usar XMLGregorianCalendar en Java

Deja un comentario