检查字符串是否为有效日期
Check if a string is a valid date
我想在构造函数中放入 Date 类型的参数,所以我认为最好的方法是编写一个将字符串转换为日期的方法。检查我的字符串是否为有效日期的最简单方法是什么?
这是我的构造函数:
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;
}
我会让 try-catch 块尽可能小。此外,如果在解析字符串时出现问题,我会 return Optional<Date>
而不是新创建的 date
对象。
public static Optional<Date> getDateFromString(String s) {
Date date = null;
DateFormat dtF = new SimpleDateFormat("dd/MM/yyyy");
try {
date = dtF.parse(s);
} catch (ParseException e) {
e.printStackTrace();
}
return Optional.ofNullable(date);
}
一个好的做法是使用更具自我描述性的名称来命名函数,例如 getDateFromString
。
我想在构造函数中放入 Date 类型的参数,所以我认为最好的方法是编写一个将字符串转换为日期的方法。检查我的字符串是否为有效日期的最简单方法是什么?
这是我的构造函数:
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;
}
我会让 try-catch 块尽可能小。此外,如果在解析字符串时出现问题,我会 return Optional<Date>
而不是新创建的 date
对象。
public static Optional<Date> getDateFromString(String s) {
Date date = null;
DateFormat dtF = new SimpleDateFormat("dd/MM/yyyy");
try {
date = dtF.parse(s);
} catch (ParseException e) {
e.printStackTrace();
}
return Optional.ofNullable(date);
}
一个好的做法是使用更具自我描述性的名称来命名函数,例如 getDateFromString
。