我有一个通过以下代码
获得的TimeZone变量(DEFAULT_TIME_ZONE)TimeZone DEFAULT_TIME_ZONE = TimeZone.getTimeZone("GMT");
现在我想得到另一个从DEFAULT_TIME_ZONE转移K小时的TimeZone。
我该怎么做?
答案 0 :(得分:1)
如果你实际上意味着"一个与UTC"有永久常数偏移的时区,那很容易:
int offsetMillis = (int) TimeUnit.HOURS.toMillis(offsetHours);
TimeZone zone = new SimpleTimeZone(offsetMillis, "some id");
如果你的意思是一个时区遵守与另一个时区相同的夏令时规则,但是会被一个固定的偏移量移动,那将会更难 - 但也不那么有用,我反对。
请注意,如果您使用Joda Time,则可以通过以下方式实现前者:
DateTimeZone zone = DateTimeZone.forOffsetHours(offsetHours);
(而且你也可以使用更好的API ......)