【发布时间】:2019-09-20 15:02:30
【问题描述】:
我想检查日期是否与我定义的模式之一匹配。请看下面我的代码。
date = null
List<String> formatStrings = Arrays.asList("yyyy-MM-dd", "dd.MM.yyyy", "yyyyMMdd", "yyyy/MM/dd", "dd/MM/yyyy");
for (String formatStr: formatStrings) {
try {
dateType = new Date(new SimpleDateFormat(formatStr).parse(myCol).getTime());
} catch (ParseException e) {}
}
return date;
我也试过了:
try {
for.. }
catch {}
我还编写了一个单元测试来测试我的函数是否有效,但它仅在我的变量具有模式时才有效:“yyyy-MM-dd”(因此是列表中的第一个)。如果我有任何其他模式,它会显示一个异常......
你能帮帮我吗?我写错了哪一行?
【问题讨论】:
-
你遇到了什么异常?也许抓住并忽略那个?
-
不,它只是检查我的 var 是否具有第一个模式而不是其他模式...如果它没有第一个模式,则直接进入异常
-
日期是一个日期。它不能匹配或不匹配模式。日期的字符串表示可能与模式匹配。我认为这是正则表达式应用程序的一种任务。
-
我怀疑你想要
return dateType;inside try 块 - 否则即使第一个成功,你也在尝试所有模式。 -
仅供参考,您使用的日期时间类在几年前被 JSR 310 中定义的 java.time 类所取代。请参阅
DateTimeFormatter和DateTimeFormatterBuilder。
标签: java date validation simpledateformat