我在java中的日期转换有一点问题。当我将19700101放入SimpleDateFormat然后调用getTime时,我得到了-3600000。我写测试:

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
Date date = dateFormat.parse("19700101");
System.out.println(date.getTime());
System.out.println(dateFormat.format(new Date(0)));
System.out.println((new Date(0)).getTime());


结果应为:

0
19700101
0


但是我得到了

-3600000
19700101
0


我的问题是为什么SimpleDateFormat返回-3600000(20Nov1969)?在哪里可以找到有关格式和转换错误的信息?

最佳答案

您使用的是哪个时区?我的猜测是您正在使用GMT + 1。将时区设置为“ GMT”,您应该会得到预期的结果。

您正在使用默认时区,例如CEST(GMT + 1)。当它是1970/01/01 00:00:00.000 CEST是1969/12/31 23:00:00.000 GMT时,从1970/01/01开始为-1h或-3600000毫秒。

关于java - Java SimpleDateFormat和19700101转换问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6788691/

10-09 13:46