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

时间:2012-07-13 12:54:36

标签: java timezone

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

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

如何做到这一点请建议。

1 个答案:

答案 0 :(得分:0)

相当简单。此时区数据库内置于java 1.6中,但您可能需要更新您的tzdata版本,请检查here

所以代码如下

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,我认为我们都同意这是加尔各答的正确偏移量。