1

自几个月前以来,我的 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格式。

4

1 回答 1

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"));
于 2013-06-26T15:19:52.833 回答