如何使用时间 API 检查字符串是否与日期模式匹配?
2022-09-02 21:58:20
我的程序正在将输入字符串解析为 LocalDate
对象。在大多数情况下,字符串看起来像 ,但偶尔看起来像 。根据具体情况,我需要使用不同的模式进行调用。基本上,我需要检查字符串是否与模式匹配或在进行解析之前检查。30.03.2014
3/30/2014
DateTimeFormatter.ofPattern(String pattern)
dd.MM.yyyy
M/dd/yyyy
正则表达式方法将如下所示:
LocalDate date;
if (dateString.matches("^\\d?\\d/\\d{2}/\\d{4}$")) {
date = LocalDate.parse(dateString, DateTimeFormatter.ofPattern("M/dd/yyyy"));
} else {
date = LocalDate.parse(dateString, DateTimeFormatter.ofPattern("dd.MM.yyyy"));
}
这有效,但是在匹配字符串时也使用日期模式字符串会很好。
是否有任何标准方法可以使用新的Java 8时间API来执行此操作,而无需诉诸正则表达式匹配?我已经在文档中查找了DateTimeFormatter
,但我找不到任何东西。