[当我使用XStream将xml解析为obj时,发生了一个问题,即返回obj.datePurchased值为'2019-01-09 01:35:40'。
为什么字段值增加了8小时?
public static void main(String[] args) {
XStream xs = new XStream(new DomDriver());
TimeZone zone = TimeZone.getTimeZone("Asia/Shanghai");
xs.registerConverter(new DateConverter(zone));
Order o = new Order();
xs.alias("order", Order.class);
xs.fromXML("<order><datePurchased>2019-01-08 17:35:40</datePurchased></order>", o);
System.out.println(o); // surprised, o.datePurchased is '2019-01-09 01:35:40'
}
class order {
private Timestamp datePurchased;
public Timestamp getDatePurchased() {
return datePurchased;
}
public void setDatePurchased(Timestamp datePurchased) {
this.datePurchased = datePurchased;
}
}
>
任何帮助将不胜感激!谢谢! =)
[当我使用XStream将xml解析为obj时,发生了一个问题是返回obj.datePurchased值为'2019-01-09 01:35:40'。为什么字段值增加了8小时?公共静态void main(String [] args)...
原因是时区。 XML文件中的日期没有时区,因此采用UTC。您所在时区的相同日期和时间相差8小时。