1

我将日期设置为 2013-01-01 00:00:00,但日期显示为 Fri Feb 01 00:00:00 GMT+01:00 2013

为什么?

Calendar calendar = Calendar.getInstance();
calendar.set(2013, 1, 1, 0, 0, 0);
Date startDate = calendar.getTime();
4

3 回答 3

7

1 表示二月。0 是一月。月份从 0 开始索引。使用助记符总是更好:Calendar.JANUARY

于 2013-01-17T16:45:55.563 回答
7

在 Java 的日期类中,月份编号从 0 开始。在类中使用月份常量Calendar来避免这种常见错误。

calendar.set(2013, Calendar.JANUARY, 1, 0, 0, 0);
于 2013-01-17T16:47:36.000 回答
0

只是一个相关的问题......

起初我认为这与我遇到的问题不同,因为我的年份错了。我已经为 12 月设置了“12”,但是因为月份是一个偏移量并且从 0 开始,日历实际上会将 12 滚动到下一年的 1 月,所以如果你的年份是错误的,请检查你的月份是否也是错误的,它可能会像我的一样翻滚。

即 setDate(2015, 12, 6) 导致日期为 2016 年 1 月 6 日

所以使用日历月常数。

于 2016-06-01T20:19:16.140 回答