2016-03-03 21 views
0

我想创建一个简单的函数,得到2个PARAMS - 日期格式(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; 
} 
+0

你读过的[SimpleDateFormat的]的Javadoc(https://docs.oracle.com/javase /8/docs/api/java/text/SimpleDateFormat.html)(特别是关于需要的格式构造的部分)? – 2016-03-03 12:30:54

+0

是的,是有acceaptable日期的一部分吗? –

+0

不,你没否则你就看到了“ - 如果给定的模式无效”部分 – 2016-03-03 12:33:59

回答

2

您可以用此实现使用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

你可以'返回DateUtils.isToday(日期)'内'尝试',然后在结尾处放下'return false'。简单! (你甚至可以内联'date'变量) – janos

0
  1. 为了检查格式,你可以做这样的事情:

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

    dateInString.equals(dateFormat.format(new Date())) 
    
  3. 看看乔达时库是方便多了;)

PS:没有测试过,但大概这就是方式去。

的清洁器的方法是将例如拆分方法向上

  • 布尔isDateFormatValid(字符串格式)
  • 布尔isDateToday(字符串dateInString,字符串格式)