Java8日期时间类LocalDateTime比较大小举例
作者:dingcho
前言
LocalDateTime是Java 8中的一个日期时间类,它继承自LocalDate和LocalTime,可以表示一个不含时区信息的日期时间对象。通过LocalDateTime可以方便地进行日期时间计算、格式化等操作
1、equals()方法
LocalDateTime localDateTime1 = LocalDateTime.of(2023, 12, 24, 8, 30, 0); LocalDateTime localDateTime2 = LocalDateTime.of(2023, 12, 24, 8, 30, 0); // 返回 true boolean result = localDateTime1.equals(localDateTime2);
2、compareTo()方法
LocalDateTime localDateTime1 = LocalDateTime.of(2023, 12, 24, 8, 30, 0); LocalDateTime localDateTime2 = LocalDateTime.of(2023, 12, 24, 8, 40, 0); // 返回 -1 int result = localDateTime1.compareTo(localDateTime2);
3、isBefore()方法
/** * LocalDateTime的isBefore()方法用于判断一个LocalDateTime是否在另一个LocalDateTime之前。 * 如果当前对象在另一个对象之前,返回true;否则返回false。 */ LocalDateTime localDateTime1 = LocalDateTime.of(2023, 12, 24, 8, 30, 0); LocalDateTime localDateTime2 = LocalDateTime.of(2023, 12, 24, 8, 40, 0); // 返回 true boolean result = localDateTime1.isBefore(localDateTime2);
4、isAfter()方法
/** * LocalDateTime的isAfter()方法用于判断一个LocalDateTime是否在另一个LocalDateTime之后。 * 如果当前对象在另一个对象之后,返回true;否则返回false。 */ LocalDateTime localDateTime1 = LocalDateTime.of(2023, 12, 24, 8, 30, 0); LocalDateTime localDateTime2 = LocalDateTime.of(2023, 12, 24, 8, 40, 0); // 返回 false boolean result = localDateTime1.isAfter(localDateTime2);
需要注意的是,当使用compareTo()方法比较两个LocalDateTime对象时,如果两个对象的日期时间值相同,但是它们的时区信息不同,仍然会返回0。因此在进行日期时间比较时,需要确保两个LocalDateTime对象的时区信息相同。
附:LocalDateTime 转 Date
LocalDateTime
不包括时区,而Date
代表一个具体的时间瞬间,精度为毫秒。
为了从LocalDateTime
转换到Date
,我们需要提供时区。
LocalDateTime + Time-Zone = Date
我们可以用以下方法将LocalDateTime
转换为Date
。
1.用 LocalDateTime.atZone()
: 它把这个日期时间和一个给定的时区结合起来,创建一个ZonedDateTime
。然后这个ZonedDateTime
可以被转换为Instant。Date.from()
方法接受Instant
并返回相等的Date
实例。
LocalDateTime localDateTime = LocalDateTime.parse("2019-11-15T13:15:30"); Instant instant = localDateTime.atZone(ZoneId.systemDefault()).toInstant(); Date date = Date.from(instant); System.out.println(date);
2.用 LocalDateTime.toInstant()
: 它将这个本地的日期时间和指定的偏移量结合起来,形成Instant
。
instant = localDateTime.toInstant(ZoneOffset.UTC); date = Date.from(instant); System.out.println(date);
3.用 Timestamp.valueOf()
: 它将一个JDBC
时间戳转义格式的字符串对象转换为一个Timestamp
值。给定的字符串日期应该是yyyy-MM-dd HH:mm:ss
格式。
instant = Timestamp.valueOf(localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))).toInstant(); date = Date.from(instant); System.out.println(date);
为了创建Date
实例,我们也使用Date
构造函数来传递时间,单位为毫秒。
Timestamp timestamp = Timestamp.valueOf(localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); date = new Date(timestamp.getTime()); System.out.println(date);
总结
到此这篇关于Java8日期时间类LocalDateTime比较大小的文章就介绍到这了,更多相关Java LocalDateTime比较大小内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!