java - 日历类混淆

标签 java calendar

我在玩 Calendar 类时得到了一些令人困惑的结果:

    Calendar thisCal = Calendar.getInstance();
    thisCal.clear();

    thisCal.set(2012,12,8);

    System.out.println("Year is: " + thisCal.get(Calendar.YEAR));
    System.out.println("Month is: " + thisCal.get(Calendar.MONTH));
    System.out.println("Day of Month is: " + thisCal.get(Calendar.DAY_OF_MONTH));

输出:

年份是:2013

月份是:0

月中的第几天是:8

我很困惑!

最佳答案

MONTH 字段是从零开始的(我认为继承自某些 POSIX API)。因此,您将其设置为 2012 年的第 13 个月,它将解释为 2013 年的第一个月(编号为 0)。

如果您将 lenient 属性设置为 false,它会抛出异常。

关于java - 日历类混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8807438/

相关文章:

javascript - 月经追踪日历

java - Servlet的OnClick > 需要从数据库中取出特定人的数据并显示在JSP上

java - Android JAVA 中的 SWIGTYPE_p_unsigned_char 打印

java - 如何在 2 月 28 日在 android 中添加 1 个月

iphone - 在不使用 UITabBarController 创建项目的情况下使用 UITabBar

html - 将元素放置在具有任意宽度但定义跨度的网格布局中

java - 更改日期时如何将日期和时间从一个时区转移到另一时区?

java - groovy + 如何匹配参数中的行

java - 将 HttpResponse 转换为字节数组

java - AppEngine 类 NotFoundException : com. google.appengine.api.datastore.DatastoreServiceFactory