0

如何通过 OsloneTimeZone 数据库获取 Java 1.6 中的 TimeZone 值。

我正在传递 base64 字符串 timeZone lyk。“亚洲/加尔各答”。之后,我必须以 + 5.5 之类的数字格式获得这个 Tiezone 值。

如何做到这一点请建议。

4

1 回答 1

0

相当简单。这个时区数据库内置在 java 1.6 中,但是您可能需要更新您的 tzdata 版本,请在此处查看

所以代码如下

TimeZone localTimeZone = TimeZone.getTimeZone("Asia/Kolkata");
// next line yields milliseconds
int rawOffset = localTimeZome.getRawOffset();
// next line converts to hours
double hourOffset = (rawOffset / 1000) / 3600.0;

如果您对数字表示感到满意(如果值为正,则没有前导加号),那么您就完成了。如果您想要一个带有前导加号的版本,请添加以下行:

String hourOffsetString = (hourOffset > 0.0 ? "+" + hourOffset : "" + hourOffset);

为我运行完整代码会产生 +5.5,我认为我们都同意这是加尔各答的正确偏移量。

于 2012-09-07T20:36:50.683 回答