如何在 Java 中分解日期和时间?

2024 年 9 月 10 日 | 阅读 3 分钟

Java 程序经常需要分解日期和时间,特别是那些涉及调度、事件管理和数据分析的程序。LocalDate、LocalTime、LocalDateTime 和 DateTimeFormatter 类只是 Java 中用于管理日期和时间的类和方法中的一部分。

要分解 Java 中的日期和时间,您首先必须使用适当的格式化程序将表示日期和时间的文本解析为 Java 日期对象。对于日期和时间的解析和格式化,DateTimeFormatter 类提供了各种预定义的格式化程序,或者您可以使用 DateTimeFormatterBuilder 类来构建自己的格式化程序。

此示例中的 dateTimeStr 字符串以 ISO 指定的 yyyy-MM-dd'T'HH:mm:ss 本地日期-时间格式表示日期和时间。此格式与预设格式化程序 ISO_LOCAL_DATE_TIME 兼容。使用 LocalDateTime 类的 parse() 函数将日期和时间文本解析为 LocalDateTime 对象。

一旦您拥有 LocalDateTime 对象,就可以使用 LocalDateTime 类的 get() 方法快速获取日期和时间组件。

例如,我们可以使用以下代码获取日期的年、月和日组件。

类似地,我们可以使用以下代码获取时间的时、分和秒部分。

如果我们需要在特定时区中处理日期和时间,我们可以使用 ZoneId 类创建一个时区对象,然后使用 LocalDateTime 类的 atZone() 函数将日期和时间转换为该时区。例如,我们可以使用以下代码将日期和时间转换为 US/Eastern 时区。

文件名:DateTimeBreak.java

输出

Year: 2023
Month: 4
Day: 19
Hour: 10
Minute: 30
Second: 0

解释

此程序中的日期和时间字符串定义为“2023-04-19T10:30:00”,采用 ISO 本地日期-时间格式。然后,我们使用一个格式化程序将日期和时间分解为各个部分,该格式化程序用于将文本解析为 LocalDateTime 对象。最后,我们将每个组件输出到控制台。

为了运行此程序,我们必须使用 Java 编译器进行编译,并将其保存为 Java 文件(例如,“DateTimeBreak.java”)。然后,使用 Java 解释器运行编译后的类文件。

时区处理

在处理日期和时间时,考虑时区差异至关重要。要表示具有特定时区的日期和时间,请使用 ZonedDateTime 类。

下面是一个将字符串转换为 ZonedDateTime 对象的示例。

该示例使用 ISO_OFFSET_DATE_TIME 常量来构建一个格式化程序,并定义一个与 UTC 偏移量(“-07:00”)的日期和时间字符串。然后使用该类的 parse() 函数将字符串解析为 ZonedDateTime 对象。

结论

总之,在 Java 中分解日期和时间需要利用格式化程序将日期和时间字符串转换为 Java 日期对象,然后使用 LocalDateTime 类的 get() 方法获取不同的日期和时间组件。ZoneId 和 ZonedDateTime 类允许您与特定时区的日期和时间进行交互。借助这些工具,您可以在 Java 程序中处理与日期和时间相关的任务。