LocalDateTime、LocalDate、LocalTime相关使用记录(未完)

LocalDateTime、LocalDate、LocalTime相关使用记录(未完)

LocalDateTime

介绍

JDK1.8除了新增了lambda表达式、stream流之外,它还新增了全新的日期时间API。在JDK1.8之前,Java处理日期、日历和时间的方式一直为社区所诟病,将 java.util.Date设定为可变类型,以及SimpleDateFormat的非线程安全使其应用非常受限。因此推出了java.time包,该包下的所有类都是不可变类型而且线程安全。

关键类

  • Instant:瞬时时间。
  • LocalDate:本地日期,不包含具体时间, 格式 yyyy-MM-dd。
  • LocalTime:本地时间,不包含日期. 格式 yyyy-MM-dd HH:mm:ss.SSS 。
  • LocalDateTime:组合了日期和时间,但不包含时差和时区信息。
  • ZonedDateTime:最完整的日期时间,包含时区和相对UTC或格林威治的时差。

1.当前时间

LocalDateTime now = LocalDateTime.now();

2.datetime字符串转localDateTime

LocalDateTime dateTime =LocalDateTime.parse("2022-06-30 10:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));

3.date字符串转localDate

LocalDate localDate1=LocalDate.parse("2022-06-30", DateTimeFormatter.ofPattern("yyyy-MM-dd"));
LocalDate localDate2=LocalDate.parse("2022-06-18", DateTimeFormatter.ofPattern("yyyy-MM-dd"));

4.time字符串转localTime

LocalTime Time=LocalTime.parse("18:00", DateTimeFormatter.ofPattern("HH:mm"));
LocalTime Time2=LocalTime.parse("18:00:30", DateTimeFormatter.ofPattern("HH:mm:ss"));

5.localDate 拼 localTime 变成localDateTime

LocalDateTime localDateTime = localDate2.atTime(Time2);

6.获取星期 THURSDAY

DayOfWeek dayOfWeek = localDateTime.getDayOfWeek();

7.dayOfWeek.getValue() 获取数字 1234567

int value = dayOfWeek.getValue();

8.两个localDate之间相差多少 正、负、0

Period period = Period.between(localDate2, localDate1);

9.两个日期之间相差多少天, DAYS可换

long between = ChronoUnit.DAYS.between(localDate2, localDate1);

10.两个localDateTime之前相差多少 正、负、0

Duration duration = Duration.between(localDateTime, dateTime);

11.两个时间比较,2022-06-30.isAfter 2022-07-01 false 反之 true

boolean after = localDateTime.isAfter(dateTime);

12.两个时间比较,2022-06-30.isBefore 2022-07-01 true 反之 false

boolean before = localDateTime.isBefore(dateTime);

13.两个时间比较,2022-06-30.isEqual 2022-07-01 false 相等 true

boolean equal = localDateTime.isEqual(dateTime);

14.Date 和 LocalDateTime 互相转换

//localDateTime 转 date
Date date = Date.from(LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant());
//date 转 localDateTime
LocalDateTime localDateTime = new Date().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();

15.LocalDateTime时间减法

//localDateTime时间减法操作,  ,minus-后面接时分秒周月年等
LocalDateTime now = LocalDateTime.now();
now.minusXXX()

时间减法操作

16.LocalDateTime时间加法

//localDateTime时间加法操作,  ,plus-后面接时分秒周月年等
LocalDateTime now = LocalDateTime.now();
now.plusXXX()

时间加法操作


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