Java SimpleDateFormat与19700101转换问题

发布于 2024-11-25 18:42:49 字数 553 浏览 4 评论 0原文

我在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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

ゝ偶尔ゞ 2024-12-02 18:42:49

您使用的是哪个时区?我猜你用的是 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文