我試圖從字符串轉換爲XML公曆日期和其總是返回我一個新的實例,請檢查下面字符串的XMLGregorianCalendar問題
輸入日期:: 2014-03-13 15:34我的代碼: 33 0000
所需的輸出日期:: 2014-03-13 15時34分33秒0000
但是,當我轉換使用我低於輸出代碼是2014-03-13T11:34:33.000-04 :00
public static void convertXMLGregorian() throws DatatypeConfigurationException {
TimeZone utc = TimeZone.getTimeZone("UTC");
GregorianCalendar gc = new GregorianCalendar();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z");
XMLGregorianCalendar xc=DatatypeFactory.newInstance().newXMLGregorianCalendar(gc);
String xcs = df.format(xc.toGregorianCalendar().getTime());
XMLGregorianCalendar converted = stringToXMLGregorianCalendar(xcs, df);
System.out.println("converted " + converted);
// output :: 2014-03-13T11:34:33.000-04:00
// String conversion methods
private static XMLGregorianCalendar dateToXMLGregorianCalendar(Date date) {
try {
GregorianCalendar gc = (GregorianCalendar) GregorianCalendar
.getInstance();
gc.setTime(date);
return DatatypeFactory.newInstance().newXMLGregorianCalendar(gc);
} catch (DatatypeConfigurationException e) {
System.out.print(e.getMessage());
return null;
}
}
private static XMLGregorianCalendar stringToXMLGregorianCalendar(
String datetime, SimpleDateFormat sdf) {
try {
Date date = sdf.parse(datetime);
return dateToXMLGregorianCalendar(date);
} catch (ParseException e) {
System.out.print(e.getMessage());
return null;
}
請幫助,提前致謝。
輸入日期和期望輸出日期有什麼不同? – sakura
多數民衆贊成那我期望的輸出不是當前輸出,如果你看到下一行當前輸出是2014-03-13T11:34:33.000-04:00 – user3288434
@ user3288434你得到的預期日期,但在不同的時區。只需更改日曆中的時區,即可獲得*期望的*值。 –