在考虑DST的情况下计算确切的UTC偏移量?

时间:2013-01-21 21:28:03

标签: android timezone utc dst

Android上,似乎没有API可以轻松获取当地时间。通过网络挖掘,我找到了一些代码来使用UTC类计算TimeZone时间的偏移量:

final long timestamp = System.currentTimeMillis();
int offset = TimeZone.getDefault().getOffset(timestamp);
if (TimeZone.getDefault().inDaylightTime(Calendar.getInstance().getTime())) {
    offset = offset - TimeZone.getDefault().getDSTSavings();
}

现在,这段代码几乎是我所需要的,但很快就会明白公式是错误的。例如。对于CET,偏移量变为3600000,但对于CEST,它将为0 - 这是错误的(应该是7200000)。

显然,我可以修改代码以使用加法而不是减法,但我不确定这是否安全,因为原作者明确指出需要减法(我认为这是PST)。

如何让我的公式适用于所有时区?

0 个答案:

没有答案
相关问题