java - 有没有一种有效的方法来检查字符串是否代表日期?
问题描述
我收到了一个特定格式的 txt。格式应该以dd/MM/uuuu开头。但是我想检查它是否确实是这种特定格式,否则我的代码会中断。
现在我的想法是检查特定的前 10 个字符(带有分隔符)是否可以定义 LocalDate 对象。所以我想出了这个:
public boolean isDate(String date) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/uuuu");
LocalDate ld = null;
try {
ld = LocalDate.parse(date, formatter);
System.out.println(ld);
} catch (DateTimeParseException e) {
System.out.println("Date " + date + " is not a date.");
return false;
}
return true;
}
然而,这不是最佳实践,因为我正在控制程序流,但有例外。另外,我必须检查另外 8 个字段来表示时间等。所以我的代码将充满尝试捕获。有没有更有效的方法来解决这个问题?
解决方案
推荐阅读
- excel - 将约会添加到非默认日历
- python - Python - 从无引发 JSONDecodeError("Expecting value", s, err.value)
- git - Move Older Commits To New Separate Branch (Pushed To Remote)
- node.js - 从 Eventbrite API 获取事件的问题
- java - 在 Spring Boot 中捕获 JDBCConnectionExceptions
- ios - 如何在 Xcode 配置文件中获取嵌套值?
- sql - 如何在 Athena (Presto) 中查询和迭代结构数组?
- katalon-studio - Katalon - 如何访问表中的元素?
- node.js - 续集如何转换对象列表
- angular - 如何使用 Angular 7 制作凝乳