Java检查Date(由整数组成)是否有效

时间:2014-05-10 12:39:47

标签: java date

我目前正在使用以下功能设置Date

private Date getDate (int day, int month, int year){
    Calendar calendar = Calendar.getInstance();
    calendar.set(year, month-1, day);
    Date date = calendar.getTime();
    return date;
}

但是,如果输入(2014年3月31日),日期只会更改为2014年7月1日。如果我的输入如上所述,是否可以检查日期是否有效?

感谢您的帮助。

1 个答案:

答案 0 :(得分:4)

您将2014年7月1日作为输出的原因:

  • 当您将月份设置为month-1时,在这种情况下,您将月份设置为6月,因为calendar.set()方法中的month参数是从0开始的(1月的索引为0)
  • 六月有30个日历日,所以如果你把这一天定为31,它将会溢出到7月1日;如果您将44设置为天数,则输出将为2014年7月14日

要抵消这种情况,请将lenient设置为false:

calendar.setLenient(false);

如果日期超出范围,则会抛出异常