指定一个日期判断是不是今天

public class DataUtils {  
    /** 
     * 判断给定字符串时间是否为今日(效率不是很高,不过也是一种方法) 
     * @param sdate 
     * @return boolean 
     */  
    public static boolean isToday(String sdate){  
        boolean b = false;  
        Date time = toDate(sdate);  
        Date today = new Date();  
        if(time != null){  
            String nowDate = dateFormater2.get().format(today);  
            String timeDate = dateFormater2.get().format(time);  
            if(nowDate.equals(timeDate)){  
                b = true;  
            }  
        }  
        return b;  
    }  

    /** 
     * 将字符串转位日期类型 
     * @param sdate 
     * @return 
     */  
    public static Date toDate(String sdate) {  
        try {  
            return dateFormater.get().parse(sdate);  
        } catch (ParseException e) {  
            return null;  
        }  
    }  

    private final static ThreadLocal dateFormater = new ThreadLocal() {  
        @Override  
        protected SimpleDateFormat initialValue() {  
            return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
        }  
    };  

    private final static ThreadLocal dateFormater2 = new ThreadLocal() {  
        @Override  
        protected SimpleDateFormat initialValue() {  
            return new SimpleDateFormat("yyyy-MM-dd");  
        }  
    };  
    private static ThreadLocal DateLocal = new ThreadLocal();  
    /** 
     * 判断是否为今天(效率比较高) 
     * @param day 传入的 时间  "2016-06-28 10:10:30" "2016-06-28" 都可以 
     * @return true今天 false不是 
     * @throws ParseException 
     */  
    public static boolean IsToday(String day) throws ParseException {  

        Calendar pre = Calendar.getInstance();  
        Date predate = new Date(System.currentTimeMillis());  
        pre.setTime(predate);  

        Calendar cal = Calendar.getInstance();  
        Date date = getDateFormat().parse(day);  
        cal.setTime(date);  

        if (cal.get(Calendar.YEAR) == (pre.get(Calendar.YEAR))) {  
            int diffDay = cal.get(Calendar.DAY_OF_YEAR)  
                    - pre.get(Calendar.DAY_OF_YEAR);  

            if (diffDay == 0) {  
                return true;  
            }  
        }  
        return false;  
    }  

    /** 
     * 判断是否为昨天(效率比较高) 
     * @param day 传入的 时间  "2016-06-28 10:10:30" "2016-06-28" 都可以 
     * @return true今天 false不是 
     * @throws ParseException 
     */  
    public static boolean IsYesterday(String day) throws ParseException {  

        Calendar pre = Calendar.getInstance();  
        Date predate = new Date(System.currentTimeMillis());  
        pre.setTime(predate);  

        Calendar cal = Calendar.getInstance();  
        Date date = getDateFormat().parse(day);  
        cal.setTime(date);  

        if (cal.get(Calendar.YEAR) == (pre.get(Calendar.YEAR))) {  
            int diffDay = cal.get(Calendar.DAY_OF_YEAR)  
                    - pre.get(Calendar.DAY_OF_YEAR);  

            if (diffDay == -1) {  
                return true;  
            }  
        }  
        return false;  
    }  

    public static SimpleDateFormat getDateFormat() {  
        if (null == DateLocal.get()) {  
            DateLocal.set(new SimpleDateFormat("yyyy-MM-dd", Locale.CHINA));  
        }  
        return DateLocal.get();  
    }  


}  

你可能感兴趣的:(指定一个日期判断是不是今天)