我对内部Java工作和日历有一个小问题,我不明白为什么在使用示例时:

    Calendar c = Calendar.getInstance();
    mesInt = c.get(Calendar.MONTH);
    System.out.println(mesInt);


如果是,那么我打印mesInt,如果实际月份是2月,则我得到mesInt = 1;

有什么特殊原因吗?我想知道,因为我之前在数据库方面遇到问题,并且我想知道是否可以从本月开始以0开始的解决方案。

谢谢大家,如果问题重复,对不起,我还没有找到。

PD:我知道这是从零开始的,但是我想知道真正的原因。

PD2:抱歉我的英语不好。我知道解决方案,我想知道原因。

最佳答案

文档指出第一个月为0。


  我想知道真正的原因。


我怀疑从0开始更容易计算。我不确定是否有人会设计日历。也许这是有道理的,因为多年来的许多编号,AM / PM等都从0开始。一周中的BTW天从1开始。


  知道我想知道是否有解决办法。


使用

int mesInt = c.get(Calendar.MONTH) + 1;


顺便说一句,对我来说,奇怪的是UNIDECIMBER,而uni-deci表示11而不是13。

09-17 10:34