【发布时间】:2018-06-18 19:59:25
【问题描述】:
我想在构造函数中放入一个日期类型的参数,所以我认为最好的方法是编写一个将字符串转换为日期的方法。检查我的字符串是否是有效日期的最简单方法是什么?
这是我的构造函数:
Product product = new Product("Produs 1", 312.33, updateDate("23/12/2018"));
这是将字符串转换为日期的方法。
public static Date updateDate(String date) {
Date newDate = new Date();
try {
DateFormat dtF = new SimpleDateFormat("dd/MM/yyyy");
newDate = dtF.parse(date);
return newDate;
} catch (ParseException e) {
e.printStackTrace();
}
return newDate;
}
【问题讨论】:
-
你可以这样解析,但是当它无效时不要返回当前日期:抛出一个异常,或者返回一个
Optional。否则,你怎么区分“你给了我一个无效的日期”和“你给了我当前的日期”? -
如果您预期的日期无效,请考虑返回
Optional<Date>。此外,updateDate()是一个日期解析方法的混淆名称。 -
我建议你避免使用
SimpleDateFormat类。它不仅过时了,而且出了名的麻烦。今天我们在java.time, the modern Java date and time API 的表现要好得多。
标签: java validation date date-parsing