Java LocalDateTime 类

24 Oct 2024 | 7 分钟阅读

Java LocalDateTime 类java.time 包的一部分,该包作为 Java Date and Time API(也称为 JSR-310)添加到 Java 8 版本中。 此类将日期和时间结合在一起,而无需时区信息。 它通常用于指示时间,而无需添加时区特定的计算。 LocalDateTime 类是一个不可变的日期时间对象,表示日期时间,默认格式为 yyyy-MM-dd-HH-mm-ss.zzz。 它继承了 object 类并实现了 ChronoLocalDateTime 接口。

需要注意的一点是,LocalDateTime 与时区或夏令时无关,这使其非常适合时区不太重要的情形。 在处理时区时,请考虑改用 ZonedDateTime。

Java LocalDateTime 类声明

让我们看看 java.time.LocalDateTime 类的声明。

Java LocalDateTime 的方法

方法描述
String format(DateTimeFormatter formatter)它用于使用指定的格式化程序格式化此日期时间。
int get(TemporalField field)它用于从此日期时间获取指定字段的值作为 int。
LocalDateTime minusDays(long days)它用于返回此 LocalDateTime 的副本,并减去指定的天数。
static LocalDateTime now()它用于从系统时钟获取默认时区中的当前日期时间。
static LocalDateTime of(LocalDate date, LocalTime time)它用于从日期和时间获取 LocalDateTime 的实例。
LocalDateTime plusDays(long days)它用于返回此 LocalDateTime 的副本,并加上指定的天数。
boolean equals(Object obj)它用于检查此日期时间是否等于另一个日期时间。

创建 LocalDateTime 对象

当前日期和时间: 获取当前日期和时间非常方便,这由 Java 8 中包含的 java.time 包的 LocalDateTime 类提供。此类是一个没有时区信息的日期时间值,因此非常适合时区调整不是优先考虑的情况。

使用 LocalDateTime.now() 方法获取当前日期和时间。

CurrentDateTimeExample.java

输出

Current Date and Time: 2024-03-10T12:33:42.698546

特定日期和时间: LocalDateTime 类可帮助您定义和处理特定日期和时间事件。 它是 Java.time 包的一部分,该包起源于 Java 8,是新的 Date and Time API 的一部分。 当我们需要处理日期和时间信息,而忽略时区调整时,通常会使用 LocalDateTime 类。

我们可以使用该方法创建一个 LocalDateTime 对象,该对象表示特定的日期和时间。 这是一个例子

SpecificDateTimeExample.java

输出

Specific Date and Time: 2024-03-10T12:30

操作 LocalDateTime

添加/删除时间单位: 您可以轻松地添加或删除时间单位,以便操作日期和时间值。 下面的示例显示了如何从 LocalDateTime 对象中添加或减去天、小时和分钟。

AddingRemovingTimeUnitsExample.java

输出

Original Date and Time: 2024-03-10T12:30
Modified Date and Time: 2024-03-15T10:45

设置特定字段: LocalDateTime 类提供了通过为 LocalDateTime 对象的年、月、日、小时、分钟和秒等各个组件分配值来更改特定字段的机会。 当您必须更改一些日期或时间段而不更改格式的其余部分时,这非常有用。

这是一个演示如何在 LocalDateTime 对象中设置特定字段的示例

SettingSpecificFieldsExample.java

输出

Original Date and Time: 2024-03-10T12:30
Modified Date and Time: 2025-04-15T15:45

格式化和解析

将 LocalDateTime 格式化为字符串: 我们可以使用 java.time.format 包中的 DateTimeFormatter 类将 LocalDateTime 对象格式化为人类可读的字符串。 当需要以任何顺序显示或打印日期和时间时,这证明很有用。

这是一个演示如何将 LocalDateTime 对象格式化为字符串的示例

FormattingLocalDateTimeExample.java

输出

Original Date and Time: 2024-03-10T13:09:49.908426
Formatted Date and Time: 2024-03-10 13:09:49

将字符串解析为 LocalDateTime: 可以通过使用 LocalDateTime.parse() 方法并提供 DateTimeFormatter 将包含日期和时间时间戳的字符串解析为 LocalDateTime 对象。 DateTimeFormatter 指示输入字符串的给定格式,Java 随后正确确定日期和时间组件。

这是一个演示如何将字符串解析为 LocalDateTime 对象的示例

ParsingStringToLocalDateTimeExample.java

输出

Parsed Date and Time: 2024-03-10T12:30

Duration 和 Period

Duration 和 Period 类包含在 java.time 包中,该包作为现代 Date and Time API (JSR-310) 添加到 Java 8 中。 这些类以天、周和月的形式表示基于日期和基于时间的量。

Duration 类

Duration 类表示以秒和纳秒为单位的时间。 本质上,它允许评估两个 Instant 实例或两个 LocalDateTime 实例之间的距离。

创建 Duration

DurationExample.java

输出

Duration: PT5H30M

计算两个 LocalTime 实例之间的 Duration

DurationExample.java

输出

Duration: PT5H15M

Period 类

Period 类表示以年、月和天为单位的期间。 它通常用于确定两个 LocalDate 实例之间的差异。

创建 Period

PeriodExample.java

输出

Period: P2Y3M5D

计算两个 LocalDate 实例之间的 Period

PeriodExample.java

输出

Period: P2Y2M9D

Java LocalDateTime 示例:now()

LocalDateTimeExample1.java

立即测试

输出

Before Formatting: 2017-01-13T17:09:42.411
After Formatting: 13-01-2017 17:09:42

Java LocalDateTime 示例:get()

LocalDateTimeExample2.java

立即测试

输出

14-01-2017 11:42:32

Java LocalDateTime 示例:minusDays()

LocalDateTimeExample3.java

立即测试

输出

1
44
13
15
956

Java LocalDateTime 示例:plusDays()

LocalDateTimeExample4.java

立即测试

输出

Before Formatting: 2016-10-06T10:34
After Formatting: 06-10-2016 10:34

下一个主题Java MonthDay