为什么具有0 long值作为参数的Date构造函数将在1970年之前在Java中输出日期?

die*_*lar 1 java date epoch

我知道他们认为这epoch是自1970年1月1日午夜以来的毫秒数.

但是,当我设置:

System.out.println(new Date(0));
Run Code Online (Sandbox Code Playgroud)

我明白了:

Wed Dec 31 18:00:00 CST 1969

因为它会倒退,为什么?

傻编辑:

是的,我是GMT -6

Lou*_*man 8

该纪元始于1970年1月1日,UTC时间午夜.您的系统默认时区可能是当时UTC的6小时.(这就是为什么在没有明确选择的情况下使用系统默认值的函数很糟糕.)