Java 8 – How to convert LocalTime to XMLGregorianCalendar and vice-versa ?

In this article, we will learn how to convert LocalTime to XMLGregorianCalendar in Java 1.8 version and vice-versa

1. Convert LocalTime to XMLGregorianCalendar :

  • For conversion of LocalTime to XMLGregorianCalendar use DatatypeFactory
  • DatatypeFactory.newInstance().newXMLGregorianCalendar(String) returns XMLGregorianCalendar object
  • Lets see an example for conversion of LocalTime to XMLGregorianCalendar in the below illustration

ConvertLocalTimeToXmlGregorianCalendar.java

package in.bench.resources.java8.localtime.examples;

import java.time.LocalTime;

import javax.xml.datatype.DatatypeConfigurationException;
import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.XMLGregorianCalendar;

public class ConvertLocalTimeToXmlGregorianCalendar {

	public static void main(String[] args) throws DatatypeConfigurationException {

		// 1. get current system time
		LocalTime localTime = LocalTime.now();
		System.out.println("Current system time is :- \n" 
				+ localTime);


		// 2. convert LocalDate to XMLGregorianCalendar - lexical representation
		XMLGregorianCalendar xmlGregorianCalendar = DatatypeFactory
				.newInstance()
				.newXMLGregorianCalendar(
						localTime.toString()
						);


		// 3. print to console
		System.out.print("\nConversion of LocalTime to XMLGregorianCalendar is :- \n"
				+ xmlGregorianCalendar);
	}
}

Output:

Current system time is :- 
20:39:05.111487

Conversion of LocalTime to XMLGregorianCalendar is :- 
20:39:05.111487

2. Convert XMLGregorianCalendar to LocalTime :

  • First, create XMLGregorianCalendar object using DatatypeFactory.newInstance().newXMLGregorianCalendar(String) method
  • For conversion of XMLGregorianCalendar to LocalTime, use one of the variants of LocalTime.of() method passing Hour/Minute/Second values extracted from newly created XMLGregorianCalendar object
  • Lets see an example for conversion of XMLGregorianCalendar to LocalTime in the below illustration

ConvertXmlGregorianCalendarToLocalTime.java

package in.bench.resources.java8.localtime.examples;

import java.time.LocalTime;

import javax.xml.datatype.DatatypeConfigurationException;
import javax.xml.datatype.DatatypeFactory;
import javax.xml.datatype.XMLGregorianCalendar;

public class ConvertXmlGregorianCalendarToLocalTime {

	public static void main(String[] args) throws DatatypeConfigurationException {

		// 1. get new instance of XMLGregorianCalendar
		XMLGregorianCalendar xmlGregorianCalendar = DatatypeFactory
				.newInstance()
				.newXMLGregorianCalendar(
						"10:48:24.062919400"
						);
		System.out.println("XMLGregorianCalendar time is :- \n" + xmlGregorianCalendar);


		// 2. convert XMLGregorianCalendar to LocalTime
		LocalTime localTime = LocalTime.of(
				xmlGregorianCalendar.getHour(), 
				xmlGregorianCalendar.getMinute(), 
				xmlGregorianCalendar.getSecond()
				);


		// 3. print to console
		System.out.print("\nConversion of XMLGregorianCalendar to LocalTime is :- \n"
				+ localTime);
	}
}

Output:

XMLGregorianCalendar time is :- 
10:48:24.062919400

Conversion of XMLGregorianCalendar to LocalTime is :- 
10:48:24

Related Articles:

References:

Happy Coding !!
Happy Learning !!

Java 8 – How to convert Date to Timestamp and vice-versa ?
Java 8 – How to convert LocalTime to GregorianCalendar and vice-versa ?