2016-03-03 43 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,字符串格式)