【问题标题】:Java Date Validation IssueJava 日期验证问题
【发布时间】:2014-04-07 21:27:28
【问题描述】:

这是格式为 MM/dd/yyyy 的日期的验证码。

SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy");
formatter.setLenient(false);
Calendar cal = Calendar.getInstance();
Date myDate = formatter.parse("01/02/2014888");
cal.setTime(myDate);

当日期字符串为 01/02/2014888 时,它通过验证。 如何正确进行验证?

【问题讨论】:

  • 这是正确和预期的行为。有关详细信息,请参阅 javadoc。
  • stackoverflow.com/a/3108582/2182351 。有一些截止年份并验证
  • 验证年份的最佳做法是什么?
  • 2014888 是一个有效的年份,尽管它在未来非常遥远。如果你想“验证”,你需要先修复一个范围。

标签: java validation date


【解决方案1】:

Calendar 类将允许您创建未来的日期,因此 2014888 是一个完全有效的年份,尽管还有很长的路要走。如果要对允许日期添加额外的约束,则需要自己检查值,例如:

    if (cal.get(Calendar.YEAR) > endOfTime) {
        // do something about it
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-08-13
    • 1970-01-01
    • 1970-01-01
    • 2015-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-28
    相关资源
    最近更新 更多