java.util.Calendar - 需要设置HOUR和HOUR_OF_DAY吗?

时间:2014-12-13 18:01:41

标签: java calendar

我正在阅读date4j homepage,在谈到Java Calendar课程的问题时,它说明了以下内容:

  

日历有两个项目,指的是当天的小时,HOUR和HOUR_OF_DAY。例如,如果需要将Calendar对象的时间部分设置为0,则必须同时设置HOUR和HOUR_OF_DAY。

但是每当我需要将Calendar对象重置回午夜时,我从未将两个 HOUR和HOUR_OF_DAY设置为0,只是HOUR_OF_DAY。而且我从来没有遇到任何问题。

我一直这么做错吗?

如果有人能够阐明上述报价的实际含义,我会非常感激。

2 个答案:

答案 0 :(得分:1)

如果设置Calendar.HOUR,则还必须设置Calendar.AM_PM字段。您不能简单地将小时设置为9并且相信您已将其设置为晚上9点。这可能在晚上运行时有效,但在早上运行时,从当前时间的副本设置。

我认为该评论与有关如何设置Calendar.HOUR不够好的经验相关,因此他们还设置了Calendar.HOUR_OF_DAY,这修复了他们的Calendar.HOUR问题。但评论本身并不完全准确。

Calendar.HOUR_OF_DAY并不含糊。将HOUR_OF_DAY设置为21使其成为晚上9点。

答案 1 :(得分:1)

它们非常简单,没有什么可以混淆的。

HOUR用于12小时制,这就是为什么你必须设置AMPM来表明它是白天还是中午。

HOUR_OF_DAY是一个24小时制,因此您无需设置AMPM字段。

网站关于MUST的声明并不完全正确