Question

I have a XMLGregorianCalendar that I would like to convert to a Java Date object, but when I try to covert this:

2013-11-19T00:00:00-00:00

I always get a date with the value a day behind.

Mon Nov 18 17:00:00 MST 2013

I just want a date object containing 11/19/2013.

Was it helpful?

Solution 2

I just did this,

Date startDate = new Date(request.getStartTime().getYear(), request.getStartTime().getMonth(), request.getStartTime().getDay(), 0, 0, 0);

OTHER TIPS

As commented above, the result you're getting is right - it's the same moment in time. Midnight UTC is 5PM MST the day before. Perhaps you should look into why your time is in "-00:00" instead of "-07:00" (MST)... but in the meanwhile, I suppose you could try this:

public static void main(String... args) throws DatatypeConfigurationException {
    XMLGregorianCalendar xcal = DatatypeFactory.newInstance().newXMLGregorianCalendar("2013-11-19T00:00:00-00:00");

    Calendar c = xcal.toGregorianCalendar();
    c.setTimeZone(TimeZone.getDefault());
    Date d = c.getTime();
    System.out.println(d);
}

prints out Tue Nov 19 00:00:00 EST 2013, and will work for other times of day, not just midnight.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top