时间工具类集合 | Java工具类整理(一)

时间工具类集合 | Java工具类整理(一)这是我参与8月更文挑战的第27天,活动详情查看:8月更文挑战 相关文章 Java工具类汇总:Java工具类 本篇文章会随着平时的工作一直更新,作为一个记录使用。 在平时工作中,会把很多业务场景相似的关

这是我参与8月更文挑战的第27天,活动详情查看:8月更文挑战


相关文章

Java工具类汇总:Java工具类


  • 本篇文章会随着平时的工作一直更新,作为一个记录使用。
  • 在平时工作中,会把很多业务场景相似的关于时间的方法,统一抽成工具类来使用。
  • 方便后期使用方便。
  • 希望这些工具类对你有帮助!
  • 点个关注哦~

时间工具类集合

①、获取一周前的时间

  • 业务场景:

    • 需要统计当前时间开始回推一周内的数据列表。
  • public static String sevenDatysAgo(){
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
            Calendar c = Calendar.getInstance();
            //过去七天
            c.setTime(new Date());
            c.add(Calendar.DATE, - 7);
            Date d = c.getTime();
            String day = format.format(d);
            day = day+" 00:00:00";
            return day;
    }
    
  • 演示效果

  •     public static void main(String[] args) {
           //调这个方法就是返回当前时间的一周前的零点零分零秒
            System.out.println(sevenDatysAgo());
        }
    
  • image-20210825160228999.png

②、获取几月前的月份

  • 业务场景

    • 一般涉及到跨年的统计,可以选择使用该工具类。
    • 比如统计当前开始回推三个月的数据分析。
  • public static String[] getDateBeforeMonth(String dateKey, Integer length){
            String[] arrData = new String[2];
             try {
                //dateKey是传进来的日期,length是所需要前推的月份
                SimpleDateFormat format = new SimpleDateFormat("yyyy-MM");
                Calendar c = Calendar.getInstance();
                Date nowMonth = format.parse(dateKey);
                c.setTime(nowMonth);
                c.add(Calendar.MONTH, -length);
                Date m3 = c.getTime();
                String mon3 = format.format(m3);
                System.out.println("过去"+length+"个月:"+mon3);
                arrData[0] = mon3;
                arrData[1] = dateKey;
                return arrData;
                } catch (ParseException e) {
                e.printStackTrace();
             }
             return arrData;
    }
    
  • 演示效果

  • public static void main(String[] args) {
            getDateBeforeMonth("2021-08",6);
    }
    
  • image-20210825160538186.png

③、小时转分钟

  • 业务场景

    • 统计页面使用,方便查看。
  • public static int hoursTOminute(String date) {
            String[] dataArr = date.split("小时");
            int Hminute = Integer.parseInt(dataArr[0]) * 60;
            int Mminute = Integer.parseInt(dataArr[1].replace("分",""));
            int hoursToMinute = Hminute + Mminute;
            return hoursToMinute;
    }
    
  • 演示效果

  • public static void main(String[] args) {
            String str = "3小时24分";
            System.out.println(str+":"+hoursTOminute(str));
    }
    
  • image-20210825160753642.png

④、得到N小时候的日期

  • 业务场景

    • 一般是在进行数据跑批的时候使用
    • 比如,造假数据让页面动起来,圈定时间范围!
  • 	/**
         * 得到n小时之后的日期
         */
        public static String getAfterHourCycleByHour(Date date, String days) {
            int daysInt = Integer.parseInt(days);
            Calendar canlendar = Calendar.getInstance();
            canlendar.setTime(date);
            canlendar.add(Calendar.HOUR, daysInt);
            SimpleDateFormat sdfd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            String dateStr = sdfd.format(canlendar.getTime());
            return dateStr;
        }
    
  • 演示效果

  • public class test {
        public static void main(String[] args) {
            Date date = new Date();
            String endTime = DateUtils.getAfterHourCycleByHour(date, "2");
            System.out.println(endTime);
        }
    }
    
  • image-20210825161207163.png

⑤、根据出生日期计算人的年龄

  • 业务场景

    • 这个就是根据别人输入的出生日期计算人的年龄,场景很简单。
  • /** * 根据出生日期计算年龄 * * @return 未来日期返回0 */
        public static int getAge(Date birthDay) throws Exception {
            Calendar cal = Calendar.getInstance();
    
            if (cal.before(birthDay)) {
                return 0;
            }
    
            int yearNow = cal.get(Calendar.YEAR);
            int monthNow = cal.get(Calendar.MONTH);
            int dayOfMonthNow = cal.get(Calendar.DAY_OF_MONTH);
            cal.setTime(birthDay);
    
            int yearBirth = cal.get(Calendar.YEAR);
            int monthBirth = cal.get(Calendar.MONTH);
            int dayOfMonthBirth = cal.get(Calendar.DAY_OF_MONTH);
    
            int age = yearNow - yearBirth;
    
            if (monthNow <= monthBirth) {
                if (monthNow == monthBirth) {
                    if (dayOfMonthNow < dayOfMonthBirth) {
                        age--;
                    }
                } else {
                    age--;
                }
            }
    
            return age;
        }
    
  • 演示效果

  • public class test {
        public static void main(String[] args) throws Exception{
            DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
            Date birthDay = df.parse("1996-08-27");
            System.out.println(DateUtils.getAge(birthDay));
        }
    }
    
  • image-20210825161749121.png

⑥、获取本周的开始时间

  • 业务场景

    • 统计本周的数据进行分析
  • public static Date getBeginDayOfWeek() {
            Date date = new Date();
            Calendar cal = Calendar.getInstance();
            cal.setTime(date);
            int dayofweek = cal.get(Calendar.DAY_OF_WEEK);
            if (dayofweek == 1) {
                dayofweek += 7;
            }
            cal.add(Calendar.DATE, 2 - dayofweek);
            return getDayStartTime(cal.getTime());
    }
    
  • 演示效果

  • public class test {
        public static void main(String[] args) throws Exception{
            System.out.println(DateUtils.getBeginDayOfWeek());
        }
    }
    
  • image-20210825162105249.png

未完待续~


**路漫漫其修远兮,吾必将上下求索~ **

如果你认为i博主写的不错!写作不易,请点赞、关注、评论给博主一个鼓励吧~hahah

今天的文章时间工具类集合 | Java工具类整理(一)分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/14602.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注