我正在创建一个Calendar实例(当前时间),然后设置小时分钟和上午/下午
Calendar now = Calendar.getInstance();
now.set(Calendar.HOUR,12);
now.set(Calendar.MINUTE,0);
now.set(Calendar.AM_PM,1);
Run Code Online (Sandbox Code Playgroud)
然后,如果我尝试从现在的Calendar实例中获取am/pm,它将错误地始终设置为am并提前1天.这似乎只发生在12小时而没有其他小时.这是什么问题?我设置它们的顺序是重要还是在第12小时的情况下,我应该使用24小时格式来设置'now'实例吗?是的我应该提到,这是在Android上.
mpr*_*vat 17
这是因为每天的一半都是从小时零到小时结束.数学上讲,没有第12个小时(即使我们在现实生活中一直使用它).那你设定的意思是在PM期间的小时零,所以:
now.set(Calendar.HOUR, 0);
now.set(Calendar.MINUTE,0);
now.set(Calendar.AM_PM, Calendar.PM);
Run Code Online (Sandbox Code Playgroud)
通过将小时设置为12,您可以告诉日历(对或错,您必须要求Oracle工程师)将其设置为PM时段的第12个小时,这将是AM时段的0小时.第二天.
在半天的时间内只有12个小时,而且这个数字是零,所以从数学上讲,没有第12个小时.它是零.这有点直观,因为我们习惯说它是12:30,而不是0:30.
| 归档时间: |
|
| 查看次数: |
7658 次 |
| 最近记录: |