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()

时间加法操作

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yizhi-w

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值