Java中处理时区的转换

时间:2022-08-08 22:09:32

最近在抓英国博彩网站的数据,他们给出的时间都是格林威治时间,我们需要转换为中国时间才能使用,这里要用到Java里的TimeZone接口。

通过下面的代码即可进行转换。

TimeZone timeZone = TimeZone.getTimeZone("GMT+8:00");
// dateTime是格林威治时间
long chineseMills = dateTime.getTime() + timeZone.getRawOffset();
Date chineseDateTime = new Date(chineseMills);

chineseDateTime就是中国本地时间。

前面是特殊情况,如果得到的是荷兰的时间,我们就要计算出我们相对于荷兰时区的偏移量,例如:

TimeZone timeZone = TimeZone.getTimeZone("GMT+8:00");
TimeZone HollandTimeZone = TimeZone.getTimeZone("GMT+1:00");
// dateTime是荷兰时间
long chineseMills = dateTime.getTime() + timeZone.getRawOffset() - HollandTimeZone.getRawOffset();
Date chineseDateTime = new Date(chineseMills);

新开了公众号,欢迎关注,主要分享一些读书笔记
Java中处理时区的转换