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