zoukankan      html  css  js  c++  java
  • 时间类型处理

    import org.apache.commons.lang3.StringUtils;
    import java.text.DateFormat;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.*;
    
    public final class DateUtils {
    
    
        /**
         * 日期转换成字符串
         * @param date
         * @param formatStr
         * @return
         */
        public static String DateToString(Date date, String formatStr){
            DateFormat df = new SimpleDateFormat(formatStr);
            return df.format(date);
        }
    
        /**
         * 日期转换成yyyy-MM-dd HH:mm:ss字符串
         * @param date
         * @return
         */
        public static String getStringDate(Date date){
            DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            return df.format(date);
        }
    
    
        /**
         * 字符串转换成日期
         * @param date
         * @param formatStr
         * @return
         */
        public static Date StringToDate(String date, String formatStr) {
            DateFormat df = new SimpleDateFormat(formatStr);
            try {
                return df.parse(date);
            } catch (ParseException e) {
                //日期格式转换错误
                e.printStackTrace();
                return null;
            }
        }
    
        /**
         * 时间转换为时/分/秒
         * @param longTime
         * @return
         */
        public static String TimeToString(long longTime){
            StringBuilder time = new StringBuilder();
            long hours = longTime / 3600;
            long minutes = (longTime % 3600) / 60;
            long seconds = longTime % 60;
            if (hours > 0)
                time.append(hours).append("小时");
            if (minutes > 0)
                time.append(minutes).append("分");
            if (seconds > 0)
                time.append(seconds).append("秒");
            if (hours == 0 && minutes == 0 && seconds == 0)
                time.append("0秒");
            return time.toString();
        }
    
        /**
         * 字符串日期加减
         * @param dateStr   操作日期
         * @param count     加的数量,负数表示减去
         * @param field     单位:Calendar.DATE, Calendar.MONTH, Calendar.YEAR
         * @return          相加后的日期字符串
         */
        public static String DateAdd(String dateStr, int count, int field){
            Calendar cd = Calendar.getInstance();
            if(StringUtils.isNotBlank(dateStr)){
                cd.setTime(StringToDate(dateStr, "yyyy-MM-dd"));
                cd.add(field, count);
                dateStr = DateToString(cd.getTime(), "yyyy-MM-dd");
            }
            return dateStr;
        }
    
        /**
         * 日期相加
         * @param date      操作日期
         * @param count     加的数量,负数表示减去
         * @param field     单位:Calendar.DATE, Calendar.MONTH, Calendar.YEAR
         * @return          相加后的日期
         */
        public static Date DateAdd(Date date, int count, int field){
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(date);
            calendar.add(field, count);
            return calendar.getTime();
        }
    
    
         /**
         * 日期相减获取时间差(毫秒数)
         * @param startTime
         * @param endTime
         * @param formatStr
         * @return
         */
        public static long DateDiff(String startTime,String endTime,String formatStr){
            long timeDiff = 0;
            if(StringUtils.isNotBlank(startTime) && StringUtils.isNotBlank(endTime)){
                long start_time = StringToDate(startTime,formatStr).getTime();
                long end_time = StringToDate(endTime,formatStr).getTime();
                timeDiff = Math.abs(start_time - end_time);
            }
            return timeDiff;
        }
    
        /**
         * 获取今天之前的days天日期列表
         * @param days
         * @return
         */
        public static List<String> getDateList(int days){
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(new Date());
            List dateList = new ArrayList();
            for(int i = 0;i<days;i++){
                calendar.setTime(new Date());
                calendar.add(Calendar.DAY_OF_MONTH, 0-(i+1));
                String dateStr = DateToString(calendar.getTime(),"yyyy-MM-dd");
                dateList.add(dateStr);
            }
            Collections.reverse(dateList);
            return dateList;
        }
    
        /**
         * 获取今天之前的days天日期列表
         * @param days
         * @return
         */
        public static String[] getDateArray(int days){
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(new Date());
            String[] dateArray = new String[days];
            for(int i=days;i>0;i--){
                calendar.setTime(new Date());
                calendar.add(Calendar.DAY_OF_MONTH, 0-i);
                String dateStr = DateToString(calendar.getTime(),"yyyy-MM-dd");
                dateArray[days-i] = dateStr;
            }
            return dateArray;
        }
    
        /**
         * 字符串日期人性化显示
         * String formatStr
         * @param date
         * @param formatStr
         * @return
         */
        public static String friendlyTime(String date, String formatStr){
            Date nowdate = StringToDate(DateToString(new Date(),formatStr),formatStr);
            Date ondate = StringToDate(date,formatStr);
            Long diffTime = (nowdate.getTime() - ondate.getTime()) / (86400000);
            String dateStr = "";
            switch (diffTime.intValue()){
                case 0:
                    dateStr = "今天";
                    break;
                case 1:
                    dateStr = "昨天";
                    break;
                case 2:
                    dateStr = "两天前";
                    break;
                case 3:
                    dateStr = "三天前";
                    break;
                case 4:
                    dateStr = "四天前";
                    break;
                case 5:
                    dateStr = "五天前";
                    break;
                case 6:
                    dateStr = "六天前";
                    break;
                case 7:
                    dateStr = "一周前";
                    break;
                default:
                    DateFormat df = new SimpleDateFormat(formatStr);
                    dateStr = df.format(date);
            }
            return dateStr;
        }
    
        /**
         * 获取日期所在的周
         * @param dateStr
         * @param formatStr
         * @return
         */
        public static String weekOfMonth(String dateStr, String formatStr){
            Date date = StringToDate(dateStr,formatStr);
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(date);
            int weekOfMonth = calendar.get(Calendar.WEEK_OF_MONTH);
            return String.valueOf(weekOfMonth);
        }
    
    }
    

      

  • 相关阅读:
    LeetCode OJ 112. Path Sum
    LeetCode OJ 226. Invert Binary Tree
    LeetCode OJ 100. Same Tree
    LeetCode OJ 104. Maximum Depth of Binary Tree
    LeetCode OJ 111. Minimum Depth of Binary Tree
    LeetCode OJ 110. Balanced Binary Tree
    apache-jmeter-3.1的简单压力测试使用方法(下载和安装)
    JMeter入门教程
    CentOS6(CentOS7)设置静态IP 并且 能够上网
    分享好文:分享我在阿里8年,是如何一步一步走向架构师的
  • 原文地址:https://www.cnblogs.com/woshuyuqiang/p/9790387.html
Copyright © 2011-2022 走看看