java中已知一个时区TimeZone,想取下一个时区如何取?

我有个时区比如说咱们常见的东八区GMT+8:00TimeZonetz=TimeZone.getTimeZone("GMT+8:00"),我有这么个时区,如何获得下一个时区... 我有个时区比如说咱们常见的东八区GMT+8:00
TimeZone tz=TimeZone.getTimeZone("GMT+8:00"),我有这么个时区,如何获得下一个时区?或者说如何取往东一个时区或者往西一个时区?
展开
 我来答
woaihouzhuang
推荐于2017-11-27 · TA获得超过259个赞
知道小有建树答主
回答量:245
采纳率:100%
帮助的人:227万
展开全部

在TimeZone类中有个静态方法 getAvailableIDs(int rawoffset) 可以获取rawoffset对应的所有的时区id,其中参数表示时间偏移量,用毫秒表示,例如东八区,则为8*60*60*1000。有了区域ID,就可以根据静态方法getTimeZone(String zoneId)获取对应的区域了。


所以获取一个时间对应的所有区域就可以实现为:

TimeZone tz = TimeZone.getDefault();
int rawOffset = 8;
String[] ids = TimeZone.getAvailableIDs(rawOffset * 60 * 60 * 1000);
for (String id : ids) {
tz = TimeZone.getTimeZone(id);
}

针对题主的要求,拿到tz之后,需要获得下一个时区,可以这样实现

TimeZone tz = TimeZone.getTimeZone("GMT+8:00");
int x = 1;//可以为-2、-1、1、2。。。先获取rawoffset,再获取时区
int rawOffset = tz.getRawOffset() + x * 60 * 60 * 1000;
String[] ids = TimeZone.getAvailableIDs(rawOffset);
for (String id : ids) {
TimeZone nexttz = TimeZone.getTimeZone(id);
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式