Java SimpleDateFormat与19700101转换问题
我在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)?在哪里可以找到有关格式和转换错误的信息?
i have a little problem with date conversion in java. When i put 19700101 to SimpleDateFormat and then call getTime i got -3600000. I write test:
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());
Result should be:
0
19700101
0
but i got
-3600000
19700101
0
My question is why SimpleDateFormat return -3600000 (20Nov1969)? Where I can find information about formatting and conversion bugs?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您使用的是哪个时区?我猜你用的是 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 为 -1 小时或 -3600000 毫秒。
Which time zone were you using? My guess is you were using GMT+1. Set the timezone to "GMT" and you should get the expected result.
You are using a default timezone like CEST (GMT+1). When it was 1970/01/01 00:00:00.000 CEST was 1969/12/31 23:00:00.000 GMT which is -1h from 1970/01/01 or -3600000 ms.