vendredi 22 juillet 2016

Java, Date changed during convert XMLGregorianCalendar to GregorianCalendar

I am struggling with the below date convert.

Original Date: Jan 2 0001 18:00 PM GMT-5:00.

Expected Date: Jan 3 0001 7:00 AM GMT+8:00.
Actual Date: Jan 5 0001 7:00 AM GMT+8:00.

    public static void main(String[] args) {
    XMLGregorianCalendar xmlC;
    try {
        xmlC = DatatypeFactory.newInstance().newXMLGregorianCalendar();
        xmlC.setYear(1);
        xmlC.setMonth(1);
        xmlC.setDay(2); // It is Jan 2!!
        xmlC.setHour(18);
        xmlC.setMinute(0);
        xmlC.setSecond(0);
        xmlC.setMillisecond(0);
        xmlC.setTimezone(-300);
        GregorianCalendar gC = xmlC.toGregorianCalendar();
        System.out.println(gC.getTime()); // Actual output: Wed Jan 05 07:00:00 CST 1
    } catch (DatatypeConfigurationException e) {
        e.printStackTrace();
    }
}

May you please help me on this? Thank you in advance.

Aucun commentaire:

Enregistrer un commentaire