我有一個代碼片段,將Date
轉換爲XMLGregorianCalendar
,但看到結果日期後不同。不確定爲什麼要在轉換後的日期中更改。日期到XMLGregorianCalendar轉換給出錯誤結果
代碼:
public void getDate() throws ParseException {
Date current = null;
String str = "1980-10-26";
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date current1 = format.parse(str);
XMLGregorianCalendar xmlCalendar = null;
xmlCalendar = Utility.convertDateToXMLGreCal(current1);
System.out.println("xmlCalendar: "+xmlCalendar);
current = Utility.convertXMLGreClndrToDate(xmlCalendar);
System.out.println("current1: "+current.toString());
}
public static XMLGregorianCalendar convertDateToXMLGreCal(final Date date){
TimeZone zone = TimeZone.getTimeZone("UTC");
GregorianCalendar gregoClndr = new GregorianCalendar(zone);
gregoClndr.setTime(date);
XMLGregorianCalendar xmlGreClndr = null;
try {
final DatatypeFactory dataTypeFactory = DatatypeFactory.newInstance();
xmlGreClndr = dataTypeFactory.newXMLGregorianCalendar(gregoClndr);
} catch (DatatypeConfigurationException e) {
}
return xmlGreClndr;
}
*
結果:
xmlCalendar: 1980-10-25T18:30:00.000Z current1: Sun Oct 26 00:00:00 IST 1980
我期待xmlCalendar
爲1980-10-26T00:00:00.000Z
。
有人可以讓我知道如何做到這一點?
我對此並不熟悉,但在我看來,日期是100%正確的,只是另一個時區? – Jaques