我正在阅读date4j homepage,在谈到Java Calendar
课程的问题时,它说明了以下内容:
日历有两个项目,指的是当天的小时,HOUR和HOUR_OF_DAY。例如,如果需要将Calendar对象的时间部分设置为0,则必须同时设置HOUR和HOUR_OF_DAY。
但是每当我需要将Calendar对象重置回午夜时,我从未将两个 HOUR和HOUR_OF_DAY设置为0,只是HOUR_OF_DAY。而且我从来没有遇到任何问题。
我一直这么做错吗?
如果有人能够阐明上述报价的实际含义,我会非常感激。
答案 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小时制,这就是为什么你必须设置AM
或PM
来表明它是白天还是中午。
HOUR_OF_DAY
是一个24小时制,因此您无需设置AM
或PM
字段。
网站关于MUST
的声明并不完全正确