一文带你搞懂Java8的LocalDateTime
什么是LocalDateTime
LocalDateTime
是Java 8提供的一个时间类型,表示本地日期和时间,不包含时区信息。它是LocalDate
和LocalTime
的结合体,提供了更加方便的操作方式和更加清晰的概念。
获取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
时需要注意,它不包含时区信息,在涉及跨时区的时间计算和显示时,需要使用ZonedDateTime
和DateTimeFormatter
等类。
参考文献
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:一文带你搞懂Java8的LocalDateTime - Python技术站