计算本年,本季,本月,本周的日期计算,java,大数据统计,根据时间段大数据查询

  • Post author:
  • Post category:java


1.获取本周时间段的时间

        Date date = new Date();
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(date);
        int weekNum = 0;
        
        // 一周的第一天是否是星期天
        boolean weekDay = calendar.getFirstDayOfWeek() == Calendar.SUNDAY;
        if (weekDay) {
            weekNum = calendar.get(Calendar.DAY_OF_WEEK) - 1;
            if (weekNum == 0) {
                weekNum = 7;
            }
        }
        //yyyy-MM-dd hh:mm:ss是12小时制,yyyy-MM-dd kk:mm:ss 是24小时制
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss");
        //当前时间
        int hours = (date.getHours()) * 60 * 60 * 1000;
        //当前分钟
        int minutes = date.getMinutes() * 60 * 1000;
        //当前秒
        int seconds = date.getSeconds() * 1000;

        //当前日期减去星期几,星期一就减去1天,星期二就减去两天以此类推,再减去当前时分秒就能得到这 
        //周第一天00:00:00时间
        String format = dateFormat.format
        (new Date(date.getTime() - (long) (weekNum+1) * 24 * 60 * 60 * 1000 - hours - 
        minutes - seconds));

2.获取当前月的时间段

        //yyyy-MM-dd hh:mm:ss是12小时制,yyyy-MM-dd kk:mm:ss 是24小时制
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss");
        //获取当前时间
        String currentTime = dateFormat.format(new Date());
        //截取日期
        String substring = currentTime.substring(8, 10);
        //转换为int类型用来计算
        int dateNow=Integer.parseInt(substring);
        Date date = new Date();
        //当前时间
        int hours = (date.getHours()) * 60 * 60 * 1000;
        //当前分钟
        int minutes = date.getMinutes() * 60 * 1000;
        //当前秒
        int seconds = date.getSeconds() * 1000;
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss");
        return dateFormat.format(new Date(date.getTime() - (long) (dateNow) * 24 * 60 * 60                 
        * 1000 - hours - minutes - seconds));


2022-06-30 24:00:00就是2022-07-01 00:00:00

3.获取当季的时间段

        //yyyy-MM-dd hh:mm:ss是12小时制,yyyy-MM-dd kk:mm:ss 是24小时制
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss");
        //获取当前日期
        String currentTime = dateFormat.format(new Date());
        //获取当前年
        String year=currentTime.substring(0,4);
        //获取当前月
        String substring = currentTime.substring(5, 7);
        String startTime="";
        switch (substring) {
            case "01":
            case "02":
            case "03":
                //如果是1,2,3月那起始月为:当前年-01-01
                startTime = year + "-01-01 00:00:00";
                break;
            case "04":
            case "05":
            case "06":
                //如果是4,5,6月那起始月为:当前年-04-01
                startTime = year + "-04-01 00:00:00";
                break;
            case "07":
            case "08":
            case "09":
                //如果是7,8,9月那起始月为:当前年-07-01
                startTime = year + "-07-01 00:00:00";
                break;
            case "10":
            case "11":
            case "12":
                //如果是10,11,12月那起始月为:当前年-10-01
                startTime = year + "-010-01 00:00:00";
                break;
        }	

4.获取当前年的时间段

//yyyy-MM-dd hh:mm:ss是12小时制,yyyy-MM-dd kk:mm:ss 是24小时制
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss");
//获取当前时间
String currentTime = dateFormat.format(new Date());
//截取当前年
String substring=currentTime.substring(0,4);
//拼接上01-01 00:00:00
String startTime=substring+"-01-01 00:00:00";


这样就可以获取倒本年的开始,本季的开始,本月的开始,本周的开始



版权声明:本文为qingqingyyds原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。