Convert String date to XMLGregorianCalendar (#15756)
Co-authored-by: rajatgarg <rajatgarg@adobe.com>
This commit is contained in:
parent
a108e81950
commit
5eae4e7df8
@ -0,0 +1,42 @@
|
|||||||
|
package com.baeldung.stringdatetoxmlgregoriancalendar;
|
||||||
|
|
||||||
|
import java.text.ParseException;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.GregorianCalendar;
|
||||||
|
|
||||||
|
import javax.xml.datatype.DatatypeConfigurationException;
|
||||||
|
import javax.xml.datatype.DatatypeFactory;
|
||||||
|
import javax.xml.datatype.XMLGregorianCalendar;
|
||||||
|
|
||||||
|
import org.joda.time.DateTime;
|
||||||
|
import org.joda.time.format.DateTimeFormat;
|
||||||
|
|
||||||
|
public class StringDateToXMLGregorianCalendarConverter {
|
||||||
|
public static XMLGregorianCalendar usingDatatypeFactoryForDate(String dateAsString) throws DatatypeConfigurationException {
|
||||||
|
return DatatypeFactory.newInstance().newXMLGregorianCalendar(dateAsString);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static XMLGregorianCalendar usingLocalDate(String dateAsString) throws DatatypeConfigurationException {
|
||||||
|
LocalDate localDate = LocalDate.parse(dateAsString);
|
||||||
|
return DatatypeFactory.newInstance().newXMLGregorianCalendar(localDate.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static XMLGregorianCalendar usingSimpleDateFormat(String dateTimeAsString) throws DatatypeConfigurationException, ParseException {
|
||||||
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
|
||||||
|
Date date = simpleDateFormat.parse(dateTimeAsString);
|
||||||
|
return DatatypeFactory.newInstance().newXMLGregorianCalendar(simpleDateFormat.format(date));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static XMLGregorianCalendar usingGregorianCalendar(String dateTimeAsString) throws DatatypeConfigurationException, ParseException {
|
||||||
|
GregorianCalendar calendar = new GregorianCalendar();
|
||||||
|
calendar.setTime(new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss").parse(dateTimeAsString));
|
||||||
|
return DatatypeFactory.newInstance().newXMLGregorianCalendar(calendar);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static XMLGregorianCalendar usingJodaTime(String dateTimeAsString) throws DatatypeConfigurationException {
|
||||||
|
DateTime dateTime = DateTime.parse(dateTimeAsString, DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss"));
|
||||||
|
return DatatypeFactory.newInstance().newXMLGregorianCalendar(dateTime.toGregorianCalendar());
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,63 @@
|
|||||||
|
package com.baeldung.stringdatetoxmlgregoriancalendar;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
|
||||||
|
import java.text.ParseException;
|
||||||
|
import javax.xml.datatype.DatatypeConfigurationException;
|
||||||
|
import javax.xml.datatype.XMLGregorianCalendar;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
public class StringDateToXMLGregorianCalendarConverterUnitTest {
|
||||||
|
private static final String dateAsString = "2014-04-24";
|
||||||
|
private static final String dateTimeAsString = "2014-04-24T15:45:30";
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void givenStringDate_whenUsingDatatypeFactory_thenConvertToXMLGregorianCalendar() throws DatatypeConfigurationException {
|
||||||
|
XMLGregorianCalendar xmlGregorianCalendar = StringDateToXMLGregorianCalendarConverter.usingDatatypeFactoryForDate(dateAsString);
|
||||||
|
assertEquals(24,xmlGregorianCalendar.getDay());
|
||||||
|
assertEquals(4,xmlGregorianCalendar.getMonth());
|
||||||
|
assertEquals(2014,xmlGregorianCalendar.getYear());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void givenStringDateTime_whenUsingApacheCommonsLang3_thenConvertToXMLGregorianCalendar() throws DatatypeConfigurationException {
|
||||||
|
XMLGregorianCalendar xmlGregorianCalendar = StringDateToXMLGregorianCalendarConverter.usingLocalDate(dateAsString);
|
||||||
|
assertEquals(24,xmlGregorianCalendar.getDay());
|
||||||
|
assertEquals(4,xmlGregorianCalendar.getMonth());
|
||||||
|
assertEquals(2014,xmlGregorianCalendar.getYear());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void givenStringDateTime_whenUsingSimpleDateFormat_thenConvertToXMLGregorianCalendar() throws DatatypeConfigurationException, ParseException {
|
||||||
|
XMLGregorianCalendar xmlGregorianCalendar = StringDateToXMLGregorianCalendarConverter.usingSimpleDateFormat(dateTimeAsString);
|
||||||
|
assertEquals(24,xmlGregorianCalendar.getDay());
|
||||||
|
assertEquals(4,xmlGregorianCalendar.getMonth());
|
||||||
|
assertEquals(2014,xmlGregorianCalendar.getYear());
|
||||||
|
assertEquals(15,xmlGregorianCalendar.getHour());
|
||||||
|
assertEquals(45,xmlGregorianCalendar.getMinute());
|
||||||
|
assertEquals(30,xmlGregorianCalendar.getSecond());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void givenStringDateTime_whenUsingGregorianCalendar_thenConvertToXMLGregorianCalendar() throws DatatypeConfigurationException, ParseException {
|
||||||
|
XMLGregorianCalendar xmlGregorianCalendar = StringDateToXMLGregorianCalendarConverter.usingGregorianCalendar(dateTimeAsString);
|
||||||
|
assertEquals(24,xmlGregorianCalendar.getDay());
|
||||||
|
assertEquals(4,xmlGregorianCalendar.getMonth());
|
||||||
|
assertEquals(2014,xmlGregorianCalendar.getYear());
|
||||||
|
assertEquals(15,xmlGregorianCalendar.getHour());
|
||||||
|
assertEquals(45,xmlGregorianCalendar.getMinute());
|
||||||
|
assertEquals(30,xmlGregorianCalendar.getSecond());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void givenStringDateTime_whenUsingJodaTime_thenConvertToXMLGregorianCalendar() throws DatatypeConfigurationException {
|
||||||
|
XMLGregorianCalendar xmlGregorianCalendar = StringDateToXMLGregorianCalendarConverter.usingJodaTime(dateTimeAsString);
|
||||||
|
assertEquals(24,xmlGregorianCalendar.getDay());
|
||||||
|
assertEquals(4,xmlGregorianCalendar.getMonth());
|
||||||
|
assertEquals(2014,xmlGregorianCalendar.getYear());
|
||||||
|
assertEquals(15,xmlGregorianCalendar.getHour());
|
||||||
|
assertEquals(45,xmlGregorianCalendar.getMinute());
|
||||||
|
assertEquals(30,xmlGregorianCalendar.getSecond());
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user