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;
    }
}
  1. 要检查格式,您可以这样做:

    SimpleDateFormat dateFormat;
    
    try {
        dateFormat = new SimpleDateFormat(format);
    }
    catch(IllegalArgumentException e){
        //handle wrong format
    }
    
  2. 检查日期是否为今天

    dateInString.equals(dateFormat.format(new Date()))
    
  3. 看看Joda时间库,方便多了;)

PS: 没有测试过,但大致就是这样。

更简洁的方法是将方法拆分,例如

  • boolean isDateFormatValid(字符串格式)
  • boolean isDateToday(String dateInString, String format)