在英国,我想获得 UTC/GMT 的当前偏移量。目前偏移量是 1 小时,但似乎没有办法找到它。
代码
TimeZone timeZone = TimeZone.getDefault();
logger.debug("Timezone ID is '" + timeZone.getID() + "'");
if (timeZone.getID().equals("GMT")) {
timeZone = TimeZone.getTimeZone("Europe/London");
logger.debug("New timezone is '" + timeZone.getID() + "'");
}
Long eventDateMillis = Long.parseLong(eventDateValue.getKeyValue());
int timezoneOffset = timeZone.getOffset(eventDateMillis);
logger.debug("Offset for " + eventDateValue + "(" + eventDateMillis + ") using timezone " + timeZone.getDisplayName() + " is " + timezoneOffset);
返回调试输出
Wed 2012/09/19 16:38:19.503|Debug|DataManagement|Timezone ID is 'GMT'
Wed 2012/09/19 16:38:19.503|Debug|DataManagement|New timezone is 'GMT'
Wed 2012/09/19 16:38:19.557|Debug|DataManagement|Offset for 18 Sep 2012 09:00(1347958800000) using timezone Greenwich Mean Time is 0
换句话说,时区“GMT”返回的偏移量为零,我找不到如何将其设置为确实返回正确偏移量的东西。
如果有人可以为 JodaTime 提供一个工作代码示例,那就可以了,但我真的很想避免仅仅为了应该是一个单行代码而安装一个单独的库。
Java版本是7。