Java 文档描述了构造Date(long date)
函数使用自 1970 年 1 月 1 日 00:00:00 GMT 以来给定的毫秒时间值构造一个 Date 对象
当我这样做时new Date(0)
,日期是 1970 年 1 月 1 日01:00:00 CET
我不知道为什么它以 01h 开头
显示时间为凌晨 1 点,因为您比格林威治标准时间早一个小时。日期实例只是自 00:00:00 1970 GMT以来的毫秒数计数器。由于您提前一个小时,当纪元发生时,实际上是您的时间凌晨 1 点。
Date 实例只是将其 toString() 方法格式化为使用系统的时区。如果要使用不同的区域打印日期,请使用DateFormat实例。
这是因为您在欧洲时区 (CET) 中显示日期,而 unix 时间(您为Date
对象提供的毫秒数)使用 GMT。