【问题标题】:Java Check whether Date (made of integers) is validJava 检查日期(由整数组成)是否有效
【发布时间】:2014-05-10 12:39:47
【问题描述】:

我目前正在使用以下函数设置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;
}

但是,如果输入 (31, 6, 2014),日期只是简单地更改为 2014 年 7 月 1 日。如果我的输入如上,有没有办法检查日期是否有效?

感谢您的帮助。

【问题讨论】:

标签: java date


【解决方案1】:

为什么输出是 2014 年 7 月 1 日:

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

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

calendar.setLenient(false);

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

【讨论】:

    猜你喜欢
    • 2017-02-28
    • 2012-03-15
    • 1970-01-01
    • 1970-01-01
    • 2013-01-09
    • 2013-06-08
    • 2020-01-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多