栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java日期工具类DateUtils

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java日期工具类DateUtils

目录

获取日期所在年中的周数

计算两个时间内所有的月份

计算两个时间内所有的周数

计算两个时间内所有日期

  • 获取日期所在年中的周数

    
    public static String getDayInWeek(String time) {
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        Date date = null;
        try {
            date = format.parse(time);
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        Calendar calendar = Calendar.getInstance();
        calendar.setFirstDayOfWeek(Calendar.MONDAY);
        calendar.setTime(date);
        String i = calendar.get(Calendar.YEAR)+"-"+calendar.get(Calendar.WEEK_OF_YEAR);
        return i;
    }

结果:

       String dayInWeek = DateUtils.getDayInWeek("2022-06-28");
       System.out.println(dayInWeek); //2022-27
  • 计算两个时间内所有的月份

   
    public static List getMonths(String date1, String date2) throws ParseException{
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");

        Date parse = sdf.parse(date1);
        Date parse2 = sdf.parse(date2);
        List dateList = new ArrayList<>();
        Calendar c1=Calendar.getInstance();
        c1.setTime(parse);
        //转为周一
        int year = c1.get(Calendar.YEAR);
        int month = c1.get(Calendar.MONTH);
        c1.set(year, month, 1, 0, 0, 0);
        Calendar c2=Calendar.getInstance();
        c2.setTime(parse2);
        int weekYear2 = c2.get(Calendar.YEAR);
        int weekOfYear2 = c2.get(Calendar.WEEK_OF_YEAR);
        c2.setWeekDate(weekYear2, weekOfYear2, Calendar.SUNDAY);
        while (true) {
            int tempMonth = c1.get(Calendar.MONTH);
            String date = c1.getWeekYear() + "-" + ((tempMonth + 1) <= 9 ? "0" + (tempMonth + 1) : tempMonth + 1);

            dateList.add(date);
            //下一个月<结束日期
            c1.set(Calendar.MONTH, tempMonth +1);
            if(c1.getTimeInMillis()>=c2.getTimeInMillis()){
                break;
            }
        }

        return dateList;
    }

结果:

        List months = DateUtils.getMonths("2022-05-28", "2022-06-28");
        System.out.println(months);//[2022-05, 2022-06]
  • 计算两个时间内所有的周数

    public static List getWeeks(String date1, String date2) throws ParseException{
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
        Date parse = sdf.parse(date1);
        Date parse2 = sdf.parse(date2);

        List dateList = new ArrayList<>();
        Calendar c1=Calendar.getInstance();
        c1.setTime(parse);
        //转为周一
        int weekYear = c1.get(Calendar.YEAR);
        int weekOfYear = c1.get(Calendar.WEEK_OF_YEAR);
        c1.setWeekDate(weekYear, weekOfYear, Calendar.MONDAY);
        Calendar c2=Calendar.getInstance();
        c2.setTime(parse2);
        int weekYear2 = c2.get(Calendar.YEAR);
        int weekOfYear2 = c2.get(Calendar.WEEK_OF_YEAR);
        c2.setWeekDate(weekYear2, weekOfYear2, Calendar.SUNDAY);
        while (true) {
            int weekNum = c1.get(Calendar.WEEK_OF_YEAR);
            dateList.add(c1.getWeekYear() + "-" + (weekNum > 9 ? weekNum : "0" + weekNum));
            if (c1.getTimeInMillis() >= c2.getTimeInMillis()) {
                break;
            }
            //增加7天
            c1.setTimeInMillis(c1.getTimeInMillis()+1000*60*60*24*7);
        }
        return dateList;
    }

结果:

        List weeks = DateUtils.getWeeks("2022-05-28", "2022-06-28");
        System.out.println(weeks);
        //[2022-22, 2022-23, 2022-24, 2022-25, 2022-26, 2022-27]
  • 计算两个时间内所有日期

   
    public static List getDays(String date1, String date2) throws ParseException{
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
        Long startTime = sdf.parse(date1).getTime();
        Long endTime = sdf.parse(date2).getTime();

        List dateList = new ArrayList();
        Long oneDay = 1000 * 60 * 60 * 24l;

        Long time = startTime;
        while (time <= endTime) {
            Date d = new Date(time);
            DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
            String date=df.format(d);
            dateList.add(date);
            time += oneDay;
        }
        return dateList;
    }

结果:

        List days = DateUtils.getDays("2022-05-28", "2022-06-28");
        System.out.println(days);
//[2022-05-28, 2022-05-29, 2022-05-30, 2022-05-31, 2022-06-01, 2022-06-02, 2022-06-03, 2022-06-04, 2022-06-05, 2022-06-06, 2022-06-07, 2022-06-08, 2022-06-09, 2022-06-10, 2022-06-11, 2022-06-12, 2022-06-13, 2022-06-14, 2022-06-15, 2022-06-16, 2022-06-17, 2022-06-18, 2022-06-19, 2022-06-20, 2022-06-21, 2022-06-22, 2022-06-23, 2022-06-24, 2022-06-25, 2022-06-26, 2022-06-27, 2022-06-28]

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1000087.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号