(1)、Date中保存的是什么
Date对象里存的只是一个long型的变量,其值为自1970年1月1日0点至Date对象所记录时刻经过的毫秒数。调用Date对象getTime()方法就可以返回这个毫秒数。
不同的时区,执行下面的语句 Date date = new Date(); new出的date对象里存的毫秒数是相同的。
确切的说,Date对象里存的是自格林威治时间( GMT)1970年1月1日0点至Date对象所表示时刻所经过的毫秒数。所以,如果某一时刻遍布于世界各地的程序员同时执行new Date语句,这些Date对象所存的毫秒数是完全一样的。也就是说,Date里存放的毫秒数是与时区无关的。
(2)、执行打印 System.out.println(date); 时区不同会打印出不同的时间
这是因为Sysytem.out.println函数在打印时间时,会取操作系统当前所设置的时区,然后根据这个时区将同毫秒数解释成该时区的时间。 当然我们也可以手动设置时区,以将同一个Date对象按不同的时区输出。
转载原文: