验证日期 - Bean 验证注释 - 使用特定格式

2024-05-01

我想验证日期格式YYYY-MM-DD_hh:mm:ss

@Past //validates for a date that is present or past. But what are the formats it accepts

如果那不可能,我想使用@Pattern。但什么是regex上述格式用于@Pattern?


@Past仅支持Date and Calendar但不是字符串,因此没有日期格式的概念。

您可以创建自定义约束,例如@DateFormat它确保给定的字符串遵循给定的日期格式,并具有如下约束实现:

public class DateFormatValidatorForString
                           implements ConstraintValidator<DateFormat, String> {

    private String format;

    public void initialize(DateFormat constraintAnnotation) {
        format = constraintAnnotation.value();
    }

    public boolean isValid(
        String date,
        ConstraintValidatorContext constraintValidatorContext) {

        if ( date == null ) {
            return true;
        }

        DateFormat dateFormat = new SimpleDateFormat( format );
        dateFormat.setLenient( false );
        try {
            dateFormat.parse(date);
            return true;
        } 
        catch (ParseException e) {
            return false;
        }
    }
}

请注意,SimpleDateFormat实例不得存储在验证器类的实例变量中,因为它不是线程安全的。或者你可以使用快速日期格式 http://commons.apache.org/proper/commons-lang/apidocs/index.html?org/apache/commons/lang3/time/FastDateFormat.html来自 commons-lang 项目的类,可以安全地从多个线程并行访问。

如果您想添加对字符串的支持@Past你可以通过实现一个验证器来实现ConstraintValidator<Past, String>并使用 XML 进行注册约束映射 http://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/#section-mapping-xml-constraints。但是,无法指定预期的格式。或者,您可以实现另一个自定义约束,例如@PastWithFormat.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

验证日期 - Bean 验证注释 - 使用特定格式 的相关文章

  • 检查双精度值的等于和不等于条件

    我在比较两者时遇到困难double values using and 我创建了 6 个双变量并尝试进行比较If健康 状况 double a b c d e f if a b c d e f My code here in case of t
  • jQuery 日期选择器 - 时区问题

    我们在网站上使用 jQuery 日期选择器来选择预订的日期和时间 日历当前设置为太平洋标准时间 当用户尝试从其他时区访问时 这会导致错误 我们是否应该将服务器设置为 UTC 并让应用程序根据用户的 IP 地址自动选择用户的时区 我很好奇我们
  • 有没有好的方法来解析用户代理字符串?

    我有一个Java接收模块User Agent来自最终用户浏览器的字符串的行为需要略有不同 具体取决于浏览器类型 浏览器版本甚至操作系统 例如 FireFox 7 0 Win7 Safari 3 2 iOS9 我明白了User Agent由于
  • Google Inbox 类似 RecyclerView 项目打开动画

    目前 我正在尝试实现 Google Inbox 例如RecyclerView行为 我对电子邮件打开动画很好奇 我的问题是 该怎么做 我的意思是 他们使用了哪种方法 他们用过吗ItemAnimator dispatchChangeStarti
  • 方法断点可能会大大减慢调试速度

    每当向方法声明行添加断点 在 Intellij IDEA 或 Android Studio 中 时 都会出现一个弹出窗口 方法断点可能会大大减慢调试速度 为什么会这样戏剧性地减慢调试速度 是我的问题吗 将断点放在函数的第一行有什么不同 Th
  • 在事件聚合器中混合枚举与事件类

    我最近尝试实现自己的简单事件聚合器 我从 MSDN 上的事件聚合器文章中获得了很多灵感 关于 MSDN 上的事件聚合器 我注意到一件事是事件实际上是它们自己的类 这根本不是一件坏事 然而 我只是觉得总是为每个小事件创建一个新的空类很尴尬 我
  • 服务器到 Firebase HTTP POST 结果为响应消息 200

    使用 Java 代码 向下滚动查看 我使用 FCM 向我的 Android 发送通知消息 当提供正确的服务器密钥令牌时 我收到如下所示的响应消息 之后从 FCM 收到以下响应消息 Response 200 Success Message m
  • spring - 强制 @Autowired 字段的 cglib 代理

    我有混合堆栈 EJB 和 Spring 为了将 Spring 自动装配到 EJB 我使用SpringBeanAutowiringInterceptor 不确定这是否会影响我遇到的问题 在尝试通过以下方式自动装配 bean 时 Scope p
  • 您网站上的自定义 jQuery 脚本有多少行代码?多少才算是太多呢?

    对于我们的网站 我使用了大量 jQuery 现在我正在查看基础库顶部的 340 行 jQuery 代码 多少是太多了 我将添加更多内容 我什么时候开始尝试压缩代码并最终转向 OOP 行数并不意味着什么 重要的是你实际上在做什么 您可能拥有
  • 参数动态时如何构建 JPQL 查询?

    我想知道是否有一个好的解决方案来构建基于过滤器的 JPQL 查询 我的查询太 富有表现力 我无法使用 Criteria 就像是 query Select from Ent if parameter null query WHERE fiel
  • tomcat 过滤所有 web 应用程序

    问题 我想对所有网络应用程序进行过滤 我创建了一个过滤器来监视对 apache tomcat 服务器的请求 举例来说 它称为 MyFilter 我在 netbeans 中创建了它 它创建了 2 个独立的目录 webpages contain
  • 从 html 页面和 javascript 调用 java webservice

    我正在尝试从 javascript 调用 java 实现的 Web 服务 使用 NetBeans IDE 我读过很多关于 jQuery 和 AJAX 的内容 但我似乎无法掌握它 假设我的 Web 服务 WSDL 位于 http localh
  • 让JScrollPane控制多个组件

    对于我的应用程序 我正在设计一个脚本编辑器 目前我有一个JPanel其中包含另一个JPanel保存行号 位于左侧 以及JTextArea用于允许用户输入代码 位于右侧 目前 我已经实施了JScrollPane on the JTextAre
  • 如何使用 Mockito 和 Junit 模拟 ZonedDateTime

    我需要模拟一个ZonedDateTime ofInstant 方法 我知道SO中有很多建议 但对于我的具体问题 到目前为止我还没有找到任何简单的解决办法 这是我的代码 public ZonedDateTime myMethodToTest
  • OpenJDK 版本控制

    上下文 我想确保我们系统上安装的 Java 不受 CVE 2022 21449 的影响 java version 给出 openjdk version 11 0 7 2020 04 14 LTS OpenJDK Runtime Enviro
  • ExceptionHandler 不适用于 Throwable

    我们的应用程序是基于 Spring MVC 的 REST 应用程序 我正在尝试使用 ExceptionHandler 注释来处理所有错误和异常 I have ExceptionHandler Throwable class public R
  • 从java中的字符串数组中删除空值

    java中如何从字符串数组中删除空值 String firstArray test1 test2 test4 我需要像这样没有 null 空 值的 firstArray String firstArray test1 test2 test4
  • Spock模拟inputStream导致无限循环

    我有一个代码 gridFSFile inputStream bytes 当我尝试这样测试时 given def inputStream Mock InputStream def gridFSDBFile Mock GridFSDBFile
  • 重写Object类的finalize()方法有什么用?

    据我所知 在java中如果我们想手动调用垃圾收集器 我们可以执行System gc 1 我们在重写的finalize 方法中做了哪些操作 2 如果我们想手动调用JVM垃圾收集器 是否需要重写finalize 方法 我们在重写的 Finali
  • MongoDB Java 驱动程序:MongoCore 驱动程序与 MongoDB 驱动程序与 MongoDB 异步驱动程序

    MongoDB Java 驱动程序有三种不同的驱动程序选项 核心驱动 MongoDB 驱动程序 MongoDB 异步驱动程序 The 驱动程序描述页面 https docs mongodb org ecosystem drivers jav

随机推荐

  • grpc找不到protobuf库

    我检查了 grpc 安装并完成了构建和安装 现在当我尝试 find package gRPC CONFIG REQUIRED I get CMake Error at CMakeLists txt 15 find package Found
  • Django 分页和“当前页面”

    我目前正在开发一个 Django 应用程序 它将利用臭名昭著的 分页 技术 我试图弄清楚 django core paginator 模块是如何工作的 我有一个带有问题模型的应用程序 我将使用此分页器列出所有问题 每页有 20 个问题 de
  • 重用named_scope来定义另一个named_scope

    我所看到的问题本质 有一天 如果我没有记错的话 我看到了一个重用一个named scope来定义另一个named scope的例子 像这样的东西 不记得确切的语法 但这正是我的问题 named scope billable conditio
  • Perl 6:反式(%h) 与反式(%h.keys => %h.values)

    还有一个问题是关于hash作为论据trans 在下面的代码中简单地取hash给出了错误的结果 但将其替换为keys and values使其正确 怎么了 my alph1
  • TSQL动态确定SP/Function的参数列表

    我想将通用日志记录片段写入存储过程集合中 我写这篇文章是为了对我们的前端用户体验进行定量测量 因为我知道前端软件使用了哪些 SP 以及它们的使用方式 我想在开始性能调优之前使用它来收集基线 然后显示调优的结果 我可以动态地从 PROCID
  • RSpec 中出现意外的 nil 变量

    我有一个非常基本的 RSpec 示例 但不起作用 这是代码 require spec helper describe Referral type functionality do describe Affiliate system do b
  • ChangeNotifierProxyProvider 给出可能为空的错误

    所以 遵循ChangeNotifierProxyProvider 文档 https pub dev documentation provider latest provider ChangeNotifierProxyProvider cla
  • 逐行比较两个不同长度的数据帧,并为每行添加具有相等值的列

    我在 python pandas 中有两个不同长度的数据帧 如下所示 df1 df2 Column1 Column2 Column3 ColumnA ColumnB 0 1 a r 0 1 a 1 2 b u 1 1 d 2 3 c k 2
  • libxml2属性修改C

    我想更改 xml 中的一个属性 电压
  • 无法为“python 3.3”安装“pip”,但在“python 2.7”上运行良好

    我是 python 新手 但不是编程 我的目标是学习 Django 进行 Web 开发 我一直在尝试安装更高版本的python pip and Django 我可以安装pip for python 2 7很好 但现在我正在尝试安装它pyth
  • 即使卸载后,旧的 GCM 令牌还会继续存在吗?

    我们一直致力于 GCM 实现 并注意到分配给应用程序安装的设备地址即使卸载应用程序也可以继续存在 因此 我们安装一个应用程序 获取令牌 A 设备订阅特定警报类型 1 消息令牌 A 并取得巨大成功 然后我们卸载该应用程序 不 我们重新安装 接
  • 我应该在读取 ElapsedMilliseconds 之前调用 Stop 吗?

    我能知道自从我打电话以来经过的时间吗Start在秒表上使用ElapsedMilliseconds不打电话Stop 我在互联网上搜索了很多 但只看到了一些例子ElapsedMilliseconds之后被调用Stop 该值是否在调用时填充Sto
  • getArray 上的 SQLFeatureNotSupportedException

    使用 MySQL 5 5 STS 2 9 2 mysql connector java 5 1 21 bin jar 我想从 ResultSet 中获取一个数组 所以我这样编码 try Connection conn DriverManag
  • 无法在 Karma 中安装 phantomJS

    WARN config config configure is deprecated please use config set instead WARN plugin Cannot find plugin karma phantomjs
  • 使用 JS 从 SharePoint 日历中检索事件编号

    我有一个 SharePoint 日历列表 并且正在寻找一个脚本来检索一天的事件数 例如 今天 即 8 月 10 日 我只想检索日历中存储的事件数 任何建议都会非常有帮助 在 JavaScript 中查询日历的问题 重复 通常 使用 REST
  • System.Net.WebException:请求已中止:请求已取消

    我有一个 WCF 服务 在负载条件下一直给我这个错误 并且我似乎无法重新创建该错误 我们已经尝试寻找解决方法大约一周了 但没有这样的运气 我看到的错误有两个部分 System ServiceModel CommunicationExcept
  • 在 Erlang 中展平嵌套列表的列表

    我正在做练习Erlang编程 问题是 编写一个函数 给定一个嵌套列表的列表 该函数将返回一个平面列表 例子 flatten 1 2 3 4 5 6 1 2 3 4 5 6 提示 使用concatenate解决flatten 这是我的conc
  • 重载“+”的不可变列表有意义吗?

    它当然没有脱离 NET框架的标准实践 当我看到一个a b我总是假设会有新的东西被创造出来 static void Main string args var list BuildList ImmutableList
  • time_t 最终的 typedef 是什么?

    我搜索了我的 Linux 机器并看到了这个 typedef typedef time t time t 但我找不到 time t定义 The 文章对此进行了一些阐述 底线是类型time tC 规范中不保证 The time tdatatyp
  • 验证日期 - Bean 验证注释 - 使用特定格式

    我想验证日期格式YYYY MM DD hh mm ss Past validates for a date that is present or past But what are the formats it accepts 如果那不可能