【问题标题】:Regular Expression for Current Date and Time [closed]当前日期和时间的正则表达式
【发布时间】:2015-07-16 10:27:42
【问题描述】:

我有一个 Date 对象(2015 年 7 月 16 日星期四 15:54:56 IST)。

Date date = new Date();

if(vea.isDateValid("Thu Jul 16 15:04:45 IST 2015","regex")){
    System.out.println("Given Date" + " is a valid date format.");  
} else {  
    System.out.println("Given Date" + " is an invalid date format.");  
}

请提出建议 “日期” 正则表达式,无需转换为任何形式。

【问题讨论】:

  • 你想对日期做什么?
  • @anubhava 我需要将当前日期和时间与正则表达式进行比较。如果匹配返回 True,否则返回 false。
  • 为什么不直接比较Dates?或事件String#equals?你想比较什么?
  • @MadProgrammer 我不需要任何方法来更改日期格式。只是我需要 Date(java.util.Date) 中的当前日期和时间的“正则表达式”。
  • 日期有很多有效的格式(这只是 16/07/2015 和周三 07.16.2015 )。如果你不知道字符串的一般结构,你不可能为所有情况编写一个(可管理的)单个正则表达式

标签: java regex date


【解决方案1】:

这是您需要的正则表达式:

[A-Z][a-z]{2}\\s[A-Z][a-z]{2}\\s[0-9]{2}\\s[0-9]{2}:[0-9]{2}:[0-9]{2}\\s[A-Z]{3}\\s[0-9]{4}

在你的 Java 代码中它会是这样的:

Date dt=new Date();
String dateString = dt.toString();

System.out.println(dateString.matches("[A-Z][a-z]{2}\\s[A-Z][a-z]{2}\\s[0-9]{2}\\s[0-9]{2}:[0-9]{2}:[0-9]{2}\\s[A-Z]{3}\\s[0-9]{4}"));

这里是 Working DEMO

【讨论】:

  • 谢谢你的魅力!!!!
  • @paanipuri 不客气,很高兴它有帮助,
【解决方案2】:

这样的东西也应该可以,我认为这样读取格式更方便:

    SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd hh:mm:ss z YYYY);

    try {
        Date date = sdf.parse(dateToValidate);
    } catch (ParseException e) {
        return false;
    }
    return true;

【讨论】:

    猜你喜欢
    • 2019-02-26
    • 1970-01-01
    • 2019-01-07
    • 2021-09-09
    • 1970-01-01
    • 2011-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多