GMT是一个时区,格林尼治时间,以地球自转为基础的时间计量系统。
UTC(
协调世界时)是一个标准,以原子时钟为基础的时间计量系统。
但地球自转在变慢所以GMT与UTC会慢慢产生误差,当UTC与GMT的误差大于0.9秒时,会调整UTC时间。大概UTC
每一年或两年会有一个“闰秒”
GMT与UTC都表示一个时间点,代表0时区的时间。
时区TimeZone和时间偏移值Time Offsets不是一回事,时区不会变,
而时间偏移值可能因为夏令时冬令时而变,例如洛杉机时区是IANA,而夏令时时间偏移值为UTC-7,冬令时时间偏移值为UTC-8。
或者时区是东六区,但它的时间偏移值是UTC+6:30。
UTC+时间偏移值=本地时间
UTC=北京时间-(UTC+8)=日本时间-(UTC+9)=>日本时间=北京时间-(UTC+8)+(UTC+9)
getTime()获取得是从1970年1月1日0:0:0距离当前时间的毫秒数(没有时间偏移值)。
timezone为UTC+8, 1.Date d = new Date(0); System.out.println( d );结果是1970-1-1 08:00:00有时间偏移值信息。
2. Date d = new Date(0); System.out.println( d.getTime() );结果是0
夏时令(Daylight Saving Time:DST),又称“日光节约时制”和“夏令时间”,各国甚至各州的是否实行夏令时的情况都不一样,时间范围也不同。可以搜索"世界各地夏令时"来查看。
关于java时区转换夏令时问题及解决办法
https://blog.csdn.net/u011165335/article/details/76636296