关键词

一文带你搞懂Java8的LocalDateTime

一文带你搞懂Java8的LocalDateTime

什么是LocalDateTime

LocalDateTime是Java 8提供的一个时间类型,表示本地日期和时间,不包含时区信息。它是LocalDateLocalTime的结合体,提供了更加方便的操作方式和更加清晰的概念。

获取LocalDateTime实例

使用LocalDateTime.now()方法可以获取当前时间的LocalDateTime实例。此外,也可以使用LocalDateTime.of()方法来创建指定的LocalDateTime实例。

例子1:获取当前时间

LocalDateTime now = LocalDateTime.now();

例子2:创建指定的日期时间

LocalDateTime dateTime = LocalDateTime.of(2022, 1, 1, 0, 0);

LocalDateTime的常用方法

获取年、月、日、小时、分钟和秒

使用getYear()getMonth()getDayOfMonth()getHour()getMinute()getSecond()方法可以获取对应的年、月、日、小时、分钟和秒。这些方法都返回基本类型的int值。

例子:获取某个时间的年月日

LocalDateTime dateTime = LocalDateTime.of(2022, 1, 1, 0, 0);
int year = dateTime.getYear();
int month = dateTime.getMonthValue();
int day = dateTime.getDayOfMonth();
System.out.println(year + "-" + month + "-" + day); // 输出 2022-1-1

修改年、月、日、小时、分钟和秒

使用withYear(int year)withMonth(int month)withDayOfMonth(int dayOfMonth)withHour(int hour)withMinute(int minute)withSecond(int second)方法可以修改对应的年、月、日、小时、分钟和秒。修改后会返回一个新的LocalDateTime实例,原来的实例不会被修改。

例子:修改年月日

LocalDateTime dateTime = LocalDateTime.of(2022, 1, 1, 0, 0);
LocalDateTime newDateTime = dateTime.withYear(2023).withMonth(2).withDayOfMonth(2);
System.out.println(dateTime); // 输出 2022-01-01T00:00
System.out.println(newDateTime); // 输出 2023-02-02T00:00

时间计算

使用plusYears(long years)plusMonths(long months)plusDays(long days)plusHours(long hours)plusMinutes(long minutes)plusSeconds(long seconds)方法可以对LocalDateTime实例进行时间计算,返回一个新的LocalDateTime实例。

使用minusYears(long years)minusMonths(long months)minusDays(long days)minusHours(long hours)minusMinutes(long minutes)minusSeconds(long seconds)方法也可以进行时间计算,不同的是减去指定数值,而不是加上。

例子:时间计算

LocalDateTime dateTime = LocalDateTime.of(2022, 1, 1, 0, 0);
LocalDateTime newDateTime = dateTime.plusYears(1).plusDays(1).plusHours(1);
System.out.println(dateTime); // 输出 2022-01-01T00:00
System.out.println(newDateTime); // 输出 2023-01-02T01:00

总结

LocalDateTime是Java 8提供的一个时间类型,表示本地日期和时间。它提供了丰富的方法来获取、修改和计算时间,非常方便。在使用LocalDateTime时需要注意,它不包含时区信息,在涉及跨时区的时间计算和显示时,需要使用ZonedDateTimeDateTimeFormatter等类。

参考文献

本文链接:http://task.lmcjl.com/news/13117.html

展开阅读全文