当前位置: 首页 > 知识库问答 >
问题:

用期望模式检验日期及其模式

澹台宾白
2023-03-14

我有一个约会,它应该是一串模式。

//True
String date ="2012-10-12 12:01:10.10.150";
String pattern = "yyyy-MM-dd hh:mm:ss.SSS";

//False
String date ="2012-10-12 12:01:10.150";
String pattern = "yyyy-MM-dd hh:mm:ss";

现在,我想知道date变量是否有一个适当的日期,以满足给定的字符串模式。在上面的例子中,true/false,我显示的是预期的结果。

public boolean isValidDate(String date, String pattern) {
    if (date == null)
        return false;
    SimpleDateFormat dateFormat = new SimpleDateFormat(pattern);
    try {
        dateFormat.parse(date.trim());
    } catch (ParseException pe) {
        return false;
    }
    return true;
}

共有1个答案

姬锐
2023-03-14

我认为您需要同时使用regex和SimpleDateFormat来实现您想要的

boolean validate(String date, String pattern) throws ParseException {
    String regex = pattern.replaceAll("\\w", "\\\\d").replace(".", "\\.");
    if (!date.matches(regex)) {
        return false;
    }
    SimpleDateFormat sdf = new SimpleDateFormat(pattern);
    sdf.setLenient(false);
    try {
        sdf.parse(date);
    } catch (Exception e) {
        return false;
    }
    return true;
}
 类似资料:
  • 以下是在日期格式化模式中使用字符。 Sr.No. 类和描述 1 G 要显示时代。 2 y 显示年份。 有效值yy,yyyy。 3 M 显示月份。 有效值MM,MMM或MMMMM。 4 d 显示月份的日期。 有效值d,dd。 5 h 显示一天中的小时(上午1-12点/下午)。 有效值hh。 6 H 显示一天中的小时(0-23)。 有效值HH。 7 m 显示小时(0-59)。 有效值mm。 8 s 显

  • 问题内容: 当它们转换为字符串时,我需要将Java Date对象转换为与JavaScript日期具有相同格式的字符串。在我们的服务器上,我们有JavaScript日期‘d,格式为: 我有一个Java Date对象,我试图将其转换为相同格式的字符串。到目前为止,我的模式是 (小时,分钟和秒始终为0),但我无法确定时区()的正确模式 谢谢您的帮助!这是到目前为止我正在使用的Java代码,以防万一: 编

  • 我希望达到每秒7.6个请求的吞吐量。我使用的是bzm-并发线程组,具有反馈功能和吞吐量成形计时器,如下所示。请忽略删除的线程组。它们被禁用,不由Jmeter执行。 当我从命令行运行脚本时,它显示的日志如下 在日志文件中,它提到: 在并发线程组中,我将带有反馈函数的目标并发定义为${{uu tstFeedback(tst name,1100,30)} 这里,1和100是开始线程和允许的最大线程数,3

  • 我在log4j2中定义了一个RollingFile追加器 但是,当我尝试运行此命令时,我得到一个错误 IllegalStateException:模式在组织中不包含日期。阿帕奇。登录中。log4j。果心阿佩德。滚动的。图形处理器。getNExtTime(PatternProcessor.java:91) 当我在filePattern中放入日期模式时,这种情况就消失了,例如,。但是我不希望日志名称中

  • 我有一个变量在一个类在测试情况下,我需要嘲笑它。我尝试过这样 但事实的确如此 giving me无法将给定对象格式化为日期 在一台机器和另一台机器上 它给我的日期不能为空。 我是Junit新手,需要帮助解决这个问题

  • 问题内容: 在我的jsf应用程序中,我知道如何使用jsf转换器针对一种模式验证用户输入: 但是如果我想让用户也可以输入格式为 “ MM-dd-yyyy” 的日期怎么办? 我认为可以从jsf扩展DateConverter来完成,但是我已经尝试过了,但是失败了。您是否有一个有效的示例来 针对多种模式验证输入日期? 谢谢。 更新 :我正在使用jsf 1.2 问题答案: 创建一个在组件上接受多个模式的自定