如何通过 OsloneTimeZone 数据库获取 Java 1.6 中的 TimeZone 值。
我正在传递 base64 字符串 timeZone lyk。“亚洲/加尔各答”。之后,我必须以 + 5.5 之类的数字格式获得这个 Tiezone 值。
如何做到这一点请建议。
相当简单。这个时区数据库内置在 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,我认为我们都同意这是加尔各答的正确偏移量。