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

展开全部

在TimeZone类中有个静态方法 getAvailableIDs(int rawoffset) 可以获取rawoffset对应的所有的时区32313133353236313431303231363533e59b9ee7ad9431333337383865id,其中参数表示时间偏移量,用毫秒表示,例如东八区,则为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);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值