java - DateTimeFormat 日期验证错误

标签 java date gwt datetime-format

我正在尝试使用 GWT 验证日期。对于大多数目的,使用下面的代码可以正常工作:

boolean valid = true;
    try{
        DateTimeFormat.getFormat(DATE_FORMAT).parseStrict(value);
    } catch (Exception e) {
        valid = false;
    }
return valid;

例如:

2014年10月35日 15/25/2014 104/15/2014 10/500/2014

全部返回错误。

我遇到的问题发生在这个实例上:

  • 20144年10月20日

DateTimeObject 将 20144 识别为有效年份。但是,当我将其插入 SQL 数据库时,我收到错误。是否有办法改变 DateTimeFormat 以便今年也抛出错误?或者任何类型的解决办法??

感谢任何帮助!

编辑:

我可以通过两种方式解决这个问题。

  1. 拆分原始字符串并检查年份长度是否只有 4 个字符

  2. 创建日期 12/31/3999 并检查解析的日期是否在此日期之前。

谢谢

最佳答案

20144 是有效年份。这不会很快发生,但它会发生。针对您的情况,最简单的解决方案是对允许的最长年份设置限制。它可以是 9999( maximum year in Microsoft SQL ),或更接近的值,具体取决于您的项目要求。

关于java - DateTimeFormat 日期验证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26260190/

相关文章:

java - 在 Netbeans 中安装 SwingX

java - 在 Hibernate 中,为什么 Set 是表示多值关联的推荐方式

java - 从 "raw"文件夹中的资源 wav 文件获取输入数据

java - GWT+Spring+Hibernate 错误 404

java - Spring Boot 中的热插拔

javascript - 将日期格式转换为 MM/DD/YYYY

java - Java 与 Javascript 旧日期的时间戳偏差(3600 秒)

swift - 如何使标签对指定日期使用不同的字符串?

hibernate - GWT 和 hibernate

gwt - 我可以在 GWT 的 DialogBox 中使用 DockLayoutPanel