LocalDate、LocalTime、LocalDateTime日期时间类

格式化,以规定格式

DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")

String类型,LocalDateTime、LocalDate、localTime类型相互转换
日期拼接时间

  //String转换为LocalDateTime
  LocalDateTime localDateTime = LocalDateTime.parse(timeString,DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
  		//LocaDateTime转换为localDate、localTime
        LocalDate localDate = localDateTime.toLocalDate();
        LocalTime localTime = localDateTime.toLocalTime();
        //日期拼接时间,LocalDateTime = LocalDate + LocalTime
        LocalDateTime clockTimeMin = localDate.atTime(LocalTime.of(00, 00, 00));
        LocalDateTime clockTimeMax = localDate.atTime(LocalTime.of(23, 59, 59));
        //LocaDateTime、LocalDate、localTime 转换为String
        clockTimeMin.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));

LocalDate日期间隔

LocalDate startDate = LocalDate.parse("2019-03-01",DateTimeFormatter.ofPattern("yyyy-MM-dd"));
LocalDate endDate = LocalDate.parse("2020-04-02",DateTimeFormatter.ofPattern("yyyy-MM-dd"));

System.out.println("总相差的天数:" + startDate.until(endDate, ChronoUnit.DAYS));//总相差的天数:398
System.out.println("总相差的月数:" + startDate.until(endDate, ChronoUnit.MONTHS));//总相差的月数:13
System.out.println("总相差的年数:" + startDate.until(endDate, ChronoUnit.YEARS));//总相差的年数:1

Period period = Period.between(startDate, endDate);
System.out.println("相差:" + period.getYears() + "年 " + period.getMonths() + "个月 "+ period.getDays() + "天");//相差:1年1个月1天

LocalDate / LocalDateTime加减时间

方法1方法1说明
plusYears(long years) minusYears(long years) 返回增加/减少了年数的副本
plusMonths(long months)  minusMonths(long months)返回增加/减少了月数的副本
plusWeeks(long weeks) minusWeeks(long weeks) 返回增加/减少了周数的副本
plusDays(long days)minusDays(long days)返回增加/减少了天数的副本
plusHours(long hours)minusHours(long hours)返回增加/减少了小时数的副本
plusSeconds(long seconds)minusMinutes(long minutes)返回增加/减少了分钟数的副本
plusSeconds(long seconds) minusSeconds(long seconds)返回增加/减少了秒数的副本
plusNanos(long nanos)minusNanos(long nanos) 返回增加/减少了纳秒数的副本

实战场景:

新增补卡记录,要求与当前日期相隔7天不允许补卡。

 /**
     * 新增补卡记录
     * @param recordClock
     * @return
     */
    @Override
    public R<String> saveRecord(RecordClock recordClock) {
    	//获取当前日期
        final String clockTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
        //将String类型的日期,转化为Date类型
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        Date date1 = null;
        Date date2 = null;
        try {
            date1 = df.parse(recordClock.getClockTime());
            date2 = df.parse(clockTime);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        //计算时间间隔,num单位为毫秒数
        long num = date2.getTime() - date1.getTime();
        //毫秒转化为天
        long interval = num / 1000 / 60 / 60 / 24;
        if(interval>7){
            return R.fail("间隔超过7天,不允许补卡");
        }
        recordClockMapper.insert(recordClock);
        return R.ok();
    }
  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值