美文网首页
DataUtils--判断指定日期是否为今天昨天

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

作者: 颤抖的闪电 | 来源:发表于2018-07-24 14:38 被阅读0次
    package com.zuji.entrance.utils;
    
    import com.tantu.module.common.file.StringUtils;
    
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.Locale;
    
    /**
     * Created by fangyc on 2018/7/20.
     */
    
    public class DateUtils {
        /**
         * 判断给定字符串时间是否为今日(效率不是很高,不过也是一种方法)
         * @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();
        }
    
        public static String TodayOrYesterday(String day) throws ParseException {
            String dayStr;
            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) {
                    dayStr = "今天";
                } else if (diffDay == -1) {
                    dayStr = "昨天";
                } else {
                    String[] str = day.split("-");
                    dayStr = str[1] + "月" + str[2] + "日";
                }
            } else {
                String[] str = day.split("-");
                dayStr = str[1] + "月" + str[2] + "日";
            }
            return dayStr;
        }
    
    }
    
    

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

    相关文章

      网友评论

          本文标题:DataUtils--判断指定日期是否为今天昨天

          本文链接:https://www.haomeiwen.com/subject/tjoemftx.html