Java 当前日期时间
最后修改日期:2024 年 7 月 10 日
在本文中,我们将介绍各种 Java 类来获取 Java 中的当前日期时间。
在 Java 中有几种方法可以获取当前日期和时间。 Java 程序员可以使用 Java 8 中引入的现代日期和时间 API (java.time)、经典的、过时的 API (java.util) 和第三方 Joda 库。
java.time 包
java.time
包包含日期、时间、瞬间和持续时间的主要 API。 它是过时的 java.util
日期和时间 API 的现代替代品。
使用 Instant 获取当前日期和时间
java.time.Instant
模拟时间轴上的单个瞬时点。 这可能用于记录应用程序中的事件时间戳。
import java.time.Instant; void main() { Instant instant = Instant.now(); System.out.println(instant); }
代码示例使用 java.time.Instant
获取当前日期和时间。
Instant instant = Instant.now();
Instant.now
方法从系统时钟获取当前瞬间。
使用 LocalDateTime 获取当前日期和时间
java.time.LocalDateTime
创建一个没有时区的日期时间。
import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; void main() { LocalDateTime now = LocalDateTime.now(); DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss"); System.out.println(dtf.format(now)); }
该示例使用 java.time.LocalDateTime
获取当前日期时间,并使用 java.time.format.DateTimeFormatter
对其进行格式化。
LocalDateTime now = LocalDateTime.now();
LocalDateTime.now
方法从系统时钟在默认时区中获取当前日期时间。
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
我们使用 DateTimeFormatter
格式化日期时间; 我们使用自定义模式。
使用 ZonedDateTime 获取当前日期时间
java.time.ZonedDateTime
是具有时区的日期时间的不可变表示。
import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; void main() { ZonedDateTime now = ZonedDateTime.now(); DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss"); System.out.println(dtf.format(now)); }
该示例使用 java.time.ZonedDateTime
获取当前日期时间,并使用 java.time.format.DateTimeFormatter
对其进行格式化。
ZonedDateTime now = ZonedDateTime.now();
ZonedDateTime.now
方法从系统时钟在默认时区中获取当前日期时间。
使用 Clock 获取当前日期和时间
java.time.Clock
提供对使用时区的当前瞬间、日期和时间的访问。
import java.time.Clock; import java.time.Instant; void main() { Clock clock = Clock.systemDefaultZone(); Instant now = clock.instant(); System.out.println(now); }
该示例使用 java.time.Clock
获取当前日期时间。
Clock clock = Clock.systemDefaultZone();
Clock.systemDefaultZone
方法获取一个时钟,该时钟使用最佳可用系统时钟返回当前瞬间,并使用默认时区转换为日期和时间。
java.util 包
java.util
中可用的类(Date
和 Calendar
)已过时。 这是原始的 Java 日期和时间 API。使用 Date 获取当前日期时间
java.util.Date
表示时间中的特定瞬间,精度为毫秒。
import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; void main() { Date now = new Date(); DateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); System.out.println(df.format(now)); }
该示例使用 java.util.Date
获取当前日期时间,并使用 java.text.SimpleDateFormat
对其进行格式化。
使用 Calendar 获取当前日期时间
java.util.Calendar
表示时间中的特定瞬间,精度为毫秒。
import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; void main() { Date now = Calendar.getInstance().getTime(); DateFormat df = new SimpleDateFormat("yyyy-MM-d HH:mm:ss"); System.out.println(df.format(now)); }
该示例使用 java.util.Calendar
获取当前日期时间,并使用 java.text.SimpleDateFormat
对其进行格式化。
使用 Joda time 获取当前日期时间
Joda time 是一个第三方日期和时间库,用于替换过时的 JDK 日期时间 API。
implementation 'joda-time:joda-time:2.12.7'
我们需要 joda-time
依赖项。
org.joda.time.LocalDateTime
是一个不可修改的日期时间类,表示没有时区的日期时间。
import org.joda.time.LocalDateTime; import org.joda.time.format.DateTimeFormat; import org.joda.time.format.DateTimeFormatter; void main() { LocalDateTime ldt = new LocalDateTime(); DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyy, MMMM dd, HH:mm:ss"); String str = fmt.print(ldt); System.out.println(str); }
该示例使用 org.joda.time.LocalDateTime
获取当前日期时间,并使用 org.joda.time.format.DateTimeFormatter
对其进行格式化。
org.joda.time.DateTime
是不可修改的日期时间类的标准实现。
import org.joda.time.DateTime; import org.joda.time.format.DateTimeFormat; import org.joda.time.format.DateTimeFormatter; void main() { DateTime dt = DateTime.now(); DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyy, MMMM dd, HH:mm:ss"); String str = fmt.print(dt); System.out.println(str); }
该示例使用 org.joda.time.DateTime
获取当前日期时间,并使用 org.joda.time.format.DateTimeFormatter
对其进行格式化。
来源
在本文中,我们展示了如何在 Java 中获取当前日期和时间。
作者
列出所有Java教程。