android 判断指定日期是否为今天昨天

来源:互联网 发布:广州双眼皮知乎 编辑:程序博客网 时间:2024/05/17 01:57
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<SimpleDateFormat> dateFormater = new ThreadLocal<SimpleDateFormat>() {        @Override        protected SimpleDateFormat initialValue() {            return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        }    };    private final static ThreadLocal<SimpleDateFormat> dateFormater2 = new ThreadLocal<SimpleDateFormat>() {        @Override        protected SimpleDateFormat initialValue() {            return new SimpleDateFormat("yyyy-MM-dd");        }    };    private static ThreadLocal<SimpleDateFormat> DateLocal = new ThreadLocal<SimpleDateFormat>();    /**     * 判断是否为今天(效率比较高)     * @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();    }}

1 0
原创粉丝点击