获取时间的一些代码

一、上月

    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM");
            Date date = new Date();
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(date); // 设置为当前时间
            calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH) - 1); // 设置为上一个月
            date = calendar.getTime();
            String dd = dateFormat.format(date);

二、本周的第一天和最后一天

        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式
            Calendar cld = Calendar.getInstance(Locale.CHINA);
            cld.setFirstDayOfWeek(Calendar.MONDAY);//以周一为首日
            cld.setTimeInMillis(System.currentTimeMillis());//当前时间
            cld.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);//周一
            String format = df.format(cld.getTime());
            cld.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);//周日
            String format1 = df.format(cld.getTime());



数据库:BETWEEN concat(#{format},' ','00:00:00') and concat(#{format1},' ','23:59:59')

三、近N天

String[] arr = new String[number];
        SimpleDateFormat sdf = new SimpleDateFormat("MM-dd");
        Calendar c = null;
        for (int i = 0; i < arr.length; i++) {
            c = Calendar.getInstance();
            c.add(Calendar.DAY_OF_MONTH, -i - 1);
            arr[(number - 1) - i] = sdf.format(c.getTime());
        }
        List<Map> list = new LinkedList<>();
        for (int i = 0; i < arr.length; i++) {
            int count = pFireDeclarationRepository.getCount(arr[i]);
            Map<String, String> map = new LinkedHashMap<>();
            map.put("name", arr[i] + "");
            map.put("value", count + "");
            list.add(map);
        }

四、本月的第一天

 public static String getMonthFist() {
        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.add(Calendar.MONTH, -1);
        calendar.set(Calendar.DAY_OF_MONTH, 0);
        // 获取当月第一天
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        String firstday = null;
        Calendar cale = Calendar.getInstance();
        // 获取前月的第一天
        cale = Calendar.getInstance();
        cale.add(Calendar.MONTH, 0);
        cale.set(Calendar.DAY_OF_MONTH, 1);
        firstday = format.format(cale.getTime());
        return firstday;
    }

五、本月的最后一天

   public static String getMonthLast() {
        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.add(Calendar.MONTH, -1);
        calendar.set(Calendar.DAY_OF_MONTH, 0);
        // 获取当月最后一天
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        String lastday;
        Calendar cale = Calendar.getInstance();
        // 获取前月的最后一天
        cale = Calendar.getInstance();
        cale.add(Calendar.MONTH, 1);
        cale.set(Calendar.DAY_OF_MONTH, 0);
        lastday = format.format(cale.getTime());
        return lastday;

    }

 六、获取当天的开始时间和结束时间

    public static String getDay(String[] args) {
        // 获取当天开始时间-00:00:00
        LocalDateTime todayStart = LocalDateTime.of(LocalDate.now(), LocalTime.MIN);
        String todayStartStr = todayStart.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
        // 获取当天结束时间-23:59:59
        LocalDateTime todayEnd = LocalDateTime.of(LocalDate.now(), LocalTime.MAX);
        String todayEndStr = todayEnd.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
        return todayEndStr;
    }

七、获得指定日期的前一天

 public static String getSpecifiedDayBefore(String specifiedDay) {
        Calendar c = Calendar.getInstance();
        Date date = null;
        try {
            date = new SimpleDateFormat("yy-MM-dd").parse(specifiedDay);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        c.setTime(date);
        int day = c.get(Calendar.DATE);
        c.set(Calendar.DATE, day - 1);

        String dayBefore = new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
        return dayBefore;
    }

八、获取指定月的前一个月

 public static String getStrDate(String strDate) {
        String stringDate = "";
        try {
            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM");//格式化为2017-10
            Date month = formatter.parse(strDate);
            Calendar calendar = Calendar.getInstance();//得到Calendar实例
            calendar.setTime(month);
            calendar.add(Calendar.MONTH, -1);//把月份减1个月
            Date starDate = calendar.getTime();//得到时间赋给Data
            stringDate = formatter.format(starDate);//使用格式化Data
            return stringDate;
        } catch (Exception e) {
            e.printStackTrace();
            return stringDate;
        }

    }

九、获取前一个月的最后一天 

 //获取前一个月的最后一天
        Calendar c = Calendar.getInstance();
        //当前日期设置为指定日期
        c.setTime(new Date());
        //指定日期月份减去一
        c.add(Calendar.MONTH, -1);
        //指定日期月份减去一后的 最大天数
        c.set(Calendar.DATE, c.getActualMaximum(Calendar.DATE));
        //获取上给月最后一天的日期
        Date lastDateOfPrevMonth = c.getTime();
        String format1 = simpleDateFormat1.format(lastDateOfPrevMonth);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值