LocalDateTime和LocalDate的使用小记

写在前头

最近部门要求代码要更加严格的规范化,使得我有机会接触到 jdk8 中新增的一些method、class,惊呼NB!
决意就一篇笔记 记录一下 …

No.1 使用LocateDateTime 设置时间,精确到时分秒

主要功能是在应对某些条件查询时,需要查询某个时间范围符合条件的结果,需要对“结束”时间做一个调整(毕竟前端有时传给你的只是yyyy-dd-mm,你懂得~~)
之前使用的是Calendar来对时间进行设置,不过存在一定的风险。
话不多说,上代码~

public static Date changeTime(Date date){
        //设置查询条件的结束时间 时分秒为当天的23:59:59
//		之前的代码,会报出“警告” 
//        Calendar calendar = Calendar.getInstance();
//        calendar.setTime(date);
//        calendar.set(Calendar.HOUR_OF_DAY, 23);
//        calendar.set(Calendar.MINUTE, 59);
//        calendar.set(Calendar.SECOND, 59);
//     下边是JDK8
        ZoneId zoneId = ZoneId.systemDefault();
        String dateStr = new SimpleDateFormat(Constants.sdf_pattern).format(date);
        LocalDateTime time = LocalDateTime.parse(dateStr,DateTimeFormatter.ofPattern(Constants.sdf_pattern));
        time = time.withHour(23);
        time = time.withMinute(59);
        time = time.withSecond(59);
        ZonedDateTime zonedDateTime = time.atZone(zoneId);
        date = Date.from(zonedDateTime.toInstant());
        return date;
    }

测试:

@Test
    public void testMethod(){
        Date date = new Date();
        System.out.println("date = " + date);
        date = changeTime(date);
        System.out.println("date = " + date);
    }

结果:

date = Tue Sep 17 11:27:19 CST 2019
date = Tue Sep 17 23:59:59 CST 2019
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: LocalDateTimeLocalDate是Java 8中的日期时间API中的两个类。 LocalDateTime类表示一个不带时区的日期时间,包含年、月、日、小时、分钟、秒和纳秒。它可以用于表示本地时间,例如某个事件发生的时间。 LocalDate类表示一个不带时区的日期,包含年、月和日。它可以用于表示本地日期,例如某个事件发生的日期。 这两个类都是线程安全的,可以用于替代旧的Date和Calendar类。它们提供了更加简单、易用和可读的API,使得处理日期和时间更加方便。 ### 回答2: LocalDateTimeLocalDate是Java 8中的日期时间类。它们属于java.time包下的类,提供了处理日期、时间的强大功能。 LocalDateTime类代表了一个不可变的日期时间对象,同时包含了日期和时间信息。它可以表示范围从'0000-01-01T00:00:00'到'9999-12-31T23:59:59.999999999'的任意日期时间。它提供了许多方法,例如获取年、月、日、时、分、秒等,以及计算两个日期时间之间的差值等。 LocalDate类是LocalDateTime的子类,代表了一个不可变的日期对象,只包含日期信息。它可以表示范围从'0000-01-01'到'9999-12-31'的任意日期。它也提供了许多方法,例如获取年、月、日等,以及计算两个日期之间的差值等。 对于时间的处理,可以使用LocalDateTime类。它可以表示一个特定的日期和时间,例如'2022-06-01T10:30:00'。而对于只需要处理日期的情况,可以使用LocalDate类。它可以表示一个特定的日期,例如'2022-06-01'。 这两个类都是不可变的,意味着一旦创建了一个实例,就不能再修改它。它们都提供了丰富的静态工厂方法和实例方法,用于创建和操作日期时间对象。 与旧的Date和Calendar类相比,这两个类提供了更简洁、更易用的API,并且处理更为准确。它们遵循ISO-8601标准,能够处理各种日期、时间格式,并且具备时区的支持。 总的来说,LocalDateTimeLocalDate类是Java 8中强大的日期时间处理工具。它们提供了简洁易用的API,能够满足各种日期、时间操作的需求。在开发中,我们可以根据具体的场景选择使用适合的类,并充分利用它们提供的方法来处理日期和时间。 ### 回答3: LocalDateTimeLocalDate是Java 8中引入的两个日期时间类。它们都属于java.time包下的类,用于处理日期和时间。 LocalDate表示一个日期,仅包含年、月、日的信息,没有时、分、秒和时区的信息。可以通过使用of()方法指定年、月、日来创建一个LocalDate对象,也可以使用now()方法获取当前日期。LocalDate还提供了各种方法来操作日期,比如获取年、月、日、星期几等信息,以及计算两个日期之间的天数差、月份差等。 LocalDateTime表示一个日期和时间,包含年、月、日、时、分、秒的信息,没有时区的信息。和LocalDate类似,可以使用of()方法指定年、月、日、时、分、秒来创建一个LocalDateTime对象,也可以使用now()方法获取当前日期和时间。LocalDateTime提供了类似于LocalDate的各种方法来操作日期和时间,比如获取年、月、日、时、分、秒等信息,以及计算两个日期时间之间的差值。 LocalDateTimeLocalDate具有不可变性,一旦创建后就不能更改其值。如果需要修改日期时间的话,需要创建一个新的对象。 另外,LocalDateTimeLocalDate都是线程安全的,可以在多线程环境中使用。它们提供了丰富的方法来处理日期和时间,可以方便地进行日期和时间的计算、格式化、比较等操作。在开发中,我们可以根据需要选择使用LocalDateTimeLocalDate来处理日期和时间的相关业务。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值