Java - 如何获得K小时移位的TimeZone?

时间:2015-02-23 08:08:35

标签: java android timezone utc gmt

我有一个通过以下代码

获得的TimeZone变量(DEFAULT_TIME_ZONE)
TimeZone DEFAULT_TIME_ZONE = TimeZone.getTimeZone("GMT");

现在我想得到另一个从DEFAULT_TIME_ZONE转移K小时的TimeZone。

我该怎么做?

1 个答案:

答案 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 ......)