Java - 检查日期格式是否可接受并根据它比较日期
Java - check if date format is acceptable and compare dates based on it
我想创建一个简单的函数来获取 2 个参数 - 日期格式(dd/mm/yyyy、dd-mm-yyyy 等...)和一个采用这种格式的字符串(1/4/2015, 1-4-2015)。
首先,有没有一种方法可以检查 SimpleDateFormat
格式是否可接受,如果 dateInString
是今天,下一步,这是我的代码:
public boolean checkDate(String dateInString, String format){
boolean result = false;
SimpleDateFormat dateFormat = new SimpleDateFormat(format);
//parse the string to date
Date inputDate = dateFormat.parse(dateInString);
//check if the date is today using the format
//if the date is today then
result = true;
return result;
}
您可以将此 Utility class (DateUtils) 与此实现一起使用:
public boolean checkDate(String dateInString, String format){
try {
return DateUtils.isToday(new SimpleDateFormat(format).parse(dateInString));
} catch (ParseException e) {
return false;
}
}
要检查格式,您可以这样做:
SimpleDateFormat dateFormat;
try {
dateFormat = new SimpleDateFormat(format);
}
catch(IllegalArgumentException e){
//handle wrong format
}
检查日期是否为今天
dateInString.equals(dateFormat.format(new Date()))
看看Joda时间库,方便多了;)
PS: 没有测试过,但大致就是这样。
更简洁的方法是将方法拆分,例如
- boolean isDateFormatValid(字符串格式)
- boolean isDateToday(String dateInString, String format)
我想创建一个简单的函数来获取 2 个参数 - 日期格式(dd/mm/yyyy、dd-mm-yyyy 等...)和一个采用这种格式的字符串(1/4/2015, 1-4-2015)。
首先,有没有一种方法可以检查 SimpleDateFormat
格式是否可接受,如果 dateInString
是今天,下一步,这是我的代码:
public boolean checkDate(String dateInString, String format){
boolean result = false;
SimpleDateFormat dateFormat = new SimpleDateFormat(format);
//parse the string to date
Date inputDate = dateFormat.parse(dateInString);
//check if the date is today using the format
//if the date is today then
result = true;
return result;
}
您可以将此 Utility class (DateUtils) 与此实现一起使用:
public boolean checkDate(String dateInString, String format){
try {
return DateUtils.isToday(new SimpleDateFormat(format).parse(dateInString));
} catch (ParseException e) {
return false;
}
}
要检查格式,您可以这样做:
SimpleDateFormat dateFormat; try { dateFormat = new SimpleDateFormat(format); } catch(IllegalArgumentException e){ //handle wrong format }
检查日期是否为今天
dateInString.equals(dateFormat.format(new Date()))
看看Joda时间库,方便多了;)
PS: 没有测试过,但大致就是这样。
更简洁的方法是将方法拆分,例如
- boolean isDateFormatValid(字符串格式)
- boolean isDateToday(String dateInString, String format)