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

来源:互联网 发布:单片机蜂鸣器电路图 编辑:程序博客网 时间:2024/06/05 11:30
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();      }  }  
0 0