几个月前,我的Android应用程序运行良好。
我以这种方式使用了解析:
String xmlString = Utilities.Unmarshall(appFramework.ordine);
其中ordine
是类Servizi
的实例:
@Root(name = "Ordine")
public class Servizi {
@Element(name = "data_richiesta")
public Calendar DataRichiesta;
//other elements
public Servizi() {
DataDesideratoDa = Calendar.getInstance();
}
}
我使用了库org.simpleframework.xml.core.Persister;
几个月前,这产生了类似的东西:
<data_richiesta class="java.util.GregorianCalendar">2012-11-16 17:55:10.216 GMT+01:00</data_richiesta>
虽然今天它产生:
<data_richiesta class="java.util.GregorianCalendar">2013-06-26 16:26:02.0 CEST</data_richiesta>
我的申请中没有改变任何内容,但现在我总是获得CEST
格式,而几个月前我获得了GMT
格式。
答案 0 :(得分:1)
Calendar.getInstance()
http://docs.oracle.com/javase/6/docs/api/java/util/Calendar.html#getInstance()
使用默认时区和区域设置获取日历。返回的日历基于默认时区的当前时间和默认语言环境。
发生的事情是我们现在在夏天,所以您的设备的时区已经改变。每年,在许多国家,每年两次时区实际发生变化:https://en.wikipedia.org/wiki/Daylight_saving_time
您应该在代码中指定一个时区,并且可能使用UTC,它不会改变:
Calendar.getInstance(TimeZone.getTimeZone("UTC"));