java中什么是时间偏移量
英国伦敦格林威治1970年第一天第一毫秒相当于是元时间。
以原时间去计算时间戳,以格林威治当前时间做为时间原点去计算偏移量。
我们全球的时间显示肯定是不一致的,而每个地方的时间都以一个中心时间为准,比如中国时间以北京时间为准,而北京时间和格林威治时间的相差的毫秒数就是中国境内以北京时间为准的地区相对于格林威治时间的偏移量。
一个地区的偏移量不会改变,使用北京时间的地区的偏移量是28800000毫秒,也就是8小时。也就是说北京比格林威治时间快了8小时。
美国的时间偏移量是-21600000,美国比格林威治时间慢了6个小时。
如何计算时间偏移量:
//获取指定地区的偏移量
Calendar cn = Calendar.getInstance(TimeZone.getTimeZone("Asia/Shanghai"));//上海(中国)时间偏移量(28800000)
Calendar en = Calendar.getInstance(TimeZone.getTimeZone("Europe/London"));//伦敦(英国)时间偏移量(0)
Calendar us = Calendar.getInstance(TimeZone.getTimeZone("America/Chicago"));//芝加哥(美国)时间偏移量(-21600000)
//获取当前地区的偏移量
Calendar calendar = Calendar.getInstance();
int zoneOffset= calendar.get(Calendar.ZONE_OFFSET);