Java最全日期正则表达式
日期是我们在日常开发中经常会遇到的数据类型,因此对日期格式进行正则匹配是非常常见的需求。在Java中,我们可以借助正则表达式来对日期进行有效匹配。本文将详细介绍Java中常见的日期格式,并给出相应的正则表达式示例。
日期格式
在Java中,常见的日期格式包括但不限于以下几种:
- yyyy-MM-dd
- yyyy/MM/dd
- yyyyMMdd
- yyyy-MM-dd HH:mm:ss
- yyyy/MM/dd HH:mm:ss
- yyyyMMddHHmmss
- yyyy-MM-dd HH:mm:ss.SSS
- yyyy/MM/dd HH:mm:ss.SSS
- yyyyMMddHHmmssSSS
- HH:mm:ss
以上日期格式中,yyyy
代表4位年份,MM
代表月份,dd
代表日期,HH
代表小时(24小时制),mm
代表分钟,ss
代表秒,SSS
代表毫秒。
正则表达式示例
下面给出对上述日期格式的正则表达式示例:
- yyyy-MM-dd:
\b\d{4}-\d{2}-\d{2}\b
- yyyy/MM/dd:
\b\d{4}/\d{2}/\d{2}\b
- yyyyMMdd:
\b\d{8}\b
- yyyy-MM-dd HH:mm:ss:
\b\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\b
- yyyy/MM/dd HH:mm:ss:
\b\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2}\b
- yyyyMMddHHmmss:
\b\d{14}\b
- yyyy-MM-dd HH:mm:ss.SSS:
\b\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3}\b
- yyyy/MM/dd HH:mm:ss.SSS:
\b\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2}\.\d{3}\b
- yyyyMMddHHmmssSSS:
\b\d{17}\b
- HH:mm:ss:
\b\d{2}:\d{2}:\d{2}\b
以上正则表达式中,\b
代表单词边界,\d
代表数字。
示例代码
接下来,我们使用Java代码来验证给定的日期是否符合上述格式中的任意一种。
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String date = "2021-10-25";
String[] patterns = {
"\\b\\d{4}-\\d{2}-\\d{2}\\b",
"\\b\\d{4}/\\d{2}/\\d{2}\\b",
"\\b\\d{8}\\b",
"\\b\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}\\b",
"\\b\\d{4}/\\d{2}/\\d{2} \\d{2}:\\d{2}:\\d{2}\\b",
"\\b\\d{14}\\b",
"\\b\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}\\.\\d{3}\\b",
"\\b\\d{4}/\\d{2}/\\d{2} \\d{2}:\\d{2}:\\d{2}\\.\\d{3}\\b",
"\\b\\d{17}\\b",
"\\b\\d{2}:\\d{2}:\\d{2}\\b"
};
for (String pattern : patterns) {
if (Pattern.matches(pattern, date)) {
System.out.println("Date format matched: " + pattern);
break;
}
}
}
}
在上面的示例代码中,我们首先定义了一个日期字符串date
,然后定义了包含所有日期格式正则表达式的数组patterns
,通过循环遍历数组中的每个正则表达式来验证给定的日期是否符合某种格式。最后输出符合的日期格式。
运行结果
运行上述示例代码,输入的日期为”2021-10-25″,输出如下:
Date format matched: \b\d{4}-\d{2}-\d{2}\b
表示输入的日期”2021-10-25″符合格式”yyyy-MM-dd”。
总结
通过本文的介绍,我们了解了Java中常见的日期格式及对应的正则表达式,并通过示例代码展示了如何使用正则表达式来匹配给定的日期格式。