33

有了小时和分钟,有没有比以下更简单或更好的方法将其设置为 Calendar 对象:

calendar.set(calendar.get(Calendar.YEAR),
                        calendar.get(Calendar.MONTH),
                        calendar.get(Calendar.DAY_OF_MONTH),
                        hour, minute);
4

4 回答 4

76

这里

calendar.set(Calendar.HOUR_OF_DAY, hour);
calendar.set(Calendar.MINUTE, minute);
于 2009-01-20T06:58:27.277 回答
5

使用set(int field, int value)。第一个参数是 HOUR/MINUTE/SECOND 的字段编号。

于 2009-01-20T06:55:05.740 回答
2

在 2018 年,没有人应该再使用该Calendar课程了。它早已过时,而且java.time现代 Java 日期和时间 API 使用起来更方便。取而代之的是,根据您的确切要求,使用 aZonedDateTime或者可能是OffsetDateTimeor LocalDateTime。无论哪种情况,请以这种方式设置一天中的时间:

dateTime = dateTime.with(LocalTime.of(hour, minute));

链接Oracle 教程日期时间

于 2018-01-13T16:09:33.653 回答
0

除了Xn0vv3r 公认的答案之外,别忘了设置

calendar.set(Calendar.SECOND, 0);

于 2021-01-03T11:15:18.663 回答