【问题标题】:Calendar format suddenly and autonomous changed in AndroidAndroid中的日历格式突然自主改变
【发布时间】:2013-06-23 19:36:36
【问题描述】:

几个月前我的 android 应用程序运行良好。

我是这样使用解析的:

String xmlString = Utilities.Unmarshall(appFramework.ordine);

其中ordineServizi 类的一个实例:

@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 格式。

【问题讨论】:

    标签: android date calendar gmt


    【解决方案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"));
    

    【讨论】:

    • 谢谢@Ken,但这并不能解决我的问题:我获得了相同的输出日期。
    • 请显示您生成输出的位置。如果您记录日历实例,您将看到它是 UTC...
    • 其实可能是Persister 里面的东西 - 我不熟悉 - 希望其他人可以提供帮助!
    猜你喜欢
    • 2011-11-10
    • 2020-04-16
    • 2016-03-29
    • 2020-05-25
    • 1970-01-01
    • 2021-08-11
    • 1970-01-01
    • 2015-02-03
    • 1970-01-01
    相关资源
    最近更新 更多