ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
# 如何使用 Java 获取当前日期时间 原文:http://zetcode.com/articles/javacurrentdatetime/ Java 当前日期时间教程介绍了各种 Java 类,以获取 Java 中的当前日期时间。 有几种方法可以获取 Java 中的当前日期和时间。 Java 程序员可以使用 Java8(`java.time`)中引入的现代日期和时间 API,经典的,过时的 API(`java.util`)和第三方 Joda 库。 ## 使用`java.time`的当前日期和时间 `java.time`包包含日期,时间,瞬间和持续时间的主要 API。 它是对过时的`java.util`日期和时间 API 的现代替代。 ### 使用`Instant`获取当前日期和时间 `java.time.Instant`在时间轴上模拟单个瞬时点。 这可用于记录应用中的事件时间戳。 `JavaCurrentDateInstant.java` ```java package com.zetcode; import java.time.Instant; public class JavaCurrentDateInstant { public static void main(String[] args) { Instant instant = Instant.now(); System.out.println(instant); } } ``` 该代码示例使用`java.time.Instant`获取当前日期和时间。 ```java Instant instant = Instant.now(); ``` `Instant.now()`方法从系统时钟获取当前时刻。 ### 使用`LocalDateTime`获取当前日期和时间 `java.time.LocalDateTime`创建不带时区的日期时间。 `JavaCurrentDateLocalDateTime.java` ```java package com.zetcode; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; public class JavaCurrentDateLocalDateTime { public static void main(String[] args) { 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`对其进行格式化。 ```java LocalDateTime now = LocalDateTime.now(); ``` `LocalDateTime.now()`方法从系统时钟以默认时区获取当前日期时间。 ### 使用`ZonedDateTime`获取当前日期和时间 `java.time.ZonedDateTime`是带有时区的日期时间的不变表示。 `JavaCurrentDateTimeZonedDateTime.java` ```java package com.zetcode; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; public class JavaCurrentDateTimeZonedDateTime { public static void main(String[] args) { 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`对其进行格式化。 ```java ZonedDateTime now = ZonedDateTime.now(); ``` `ZonedDateTime.now()`方法从系统时钟以默认时区获取当前日期时间。 ### 使用`Clock`获取当前日期和时间 `java.time.Clock`使用时区提供对当前时刻,日期和时间的访问。 `JavaCurrentDateTimeClock.java` ```java package com.zetcode; import java.time.Clock; import java.time.Instant; public class JavaCurrentDateTimeClock { public static void main(String[] args) { Clock clock = Clock.systemDefaultZone(); Instant now = clock.instant(); System.out.println(now); } } ``` 该示例使用`java.time.Clock`获取当前日期时间。 ```java Clock clock = Clock.systemDefaultZone(); ``` `Clock.systemDefaultZone()`方法获得一个时钟,该时钟使用最佳可用系统时钟返回当前时刻,并使用默认时区转换为日期和时间。 ## 使用`java.util`的当前日期和时间 `java.util`(`Date`和`Calendar`)中可用的类被认为已过时。 这是原始的 Java 日期和时间 API。 ### 使用`Date`获取当前日期和时间 `java.util.Date`表示特定的时间瞬间,精度为毫秒。 `JavaCurrentDateTimeDate.java` ```java package com.zetcode; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; public class JavaCurrentDateTimeDate { public static void main(String[] args) { 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`表示特定的时间瞬间,精度为毫秒。 `JavaCurrentDateTimeCalendar.java` ```java package com.zetcode; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class JavaCurrentDateTimeCalendar { public static void main(String[] args) { 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 时间库的当前日期和时间 Joda time 是第三方日期和时间库,用于替换过时的 JDK 日期时间 API。 ```java <dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> <version>2.9.9</version> </dependency> ``` 我们需要`joda-time`依赖项。 ### 使用 Joda `LocalDateTime`获取当前日期和时间 `org.joda.time.LocalDateTime`是不可修改的日期时间类,表示没有时区的日期时间。 `JavaCurrentDateTimeJoda.java` ```java package com.zetcode; import org.joda.time.LocalDateTime; import org.joda.time.format.DateTimeFormat; import org.joda.time.format.DateTimeFormatter; public class JavaCurrentDateTimeJoda { public static void main(String[] args) { 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`对其进行格式化。 ### 使用 Joda `DateTime`获取当前日期和时间 `org.joda.time.DateTime`是不可修改的日期时间类的标准实现。 `JavaCurrentDateTimeJoda2.java` ```java package com.zetcode; import org.joda.time.DateTime; import org.joda.time.format.DateTimeFormat; import org.joda.time.format.DateTimeFormatter; public class JavaCurrentDateTimeJoda2 { public static void main(String[] args) { 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 `HashSet`教程](/java/hashset/), [Java `HashMap`教程](/java/hashmap/), [Java 中的`HashMap`迭代](/java/hashmapiterate/), [Java `static`关键字](/java/statickeyword/) , [Java Swing 教程](/tutorials/javaswingtutorial/), [Java 教程](/lang/java/),[用 Java 显示图像](/java/displayimage/)。