原文: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

  1. package com.zetcode;
  2. import java.time.Instant;
  3. public class JavaCurrentDateInstant {
  4. public static void main(String[] args) {
  5. Instant instant = Instant.now();
  6. System.out.println(instant);
  7. }
  8. }

该代码示例使用java.time.Instant获取当前日期和时间。

  1. Instant instant = Instant.now();

Instant.now()方法从系统时钟获取当前时刻。

使用LocalDateTime获取当前日期和时间

java.time.LocalDateTime创建不带时区的日期时间。

JavaCurrentDateLocalDateTime.java

  1. package com.zetcode;
  2. import java.time.LocalDateTime;
  3. import java.time.format.DateTimeFormatter;
  4. public class JavaCurrentDateLocalDateTime {
  5. public static void main(String[] args) {
  6. LocalDateTime now = LocalDateTime.now();
  7. DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
  8. System.out.println(dtf.format(now));
  9. }
  10. }

该示例使用java.time.LocalDateTime获取当前日期时间,并使用java.time.format.DateTimeFormatter对其进行格式化。

  1. LocalDateTime now = LocalDateTime.now();

LocalDateTime.now()方法从系统时钟以默认时区获取当前日期时间。

使用ZonedDateTime获取当前日期和时间

java.time.ZonedDateTime是带有时区的日期时间的不变表示。

JavaCurrentDateTimeZonedDateTime.java

  1. package com.zetcode;
  2. import java.time.ZonedDateTime;
  3. import java.time.format.DateTimeFormatter;
  4. public class JavaCurrentDateTimeZonedDateTime {
  5. public static void main(String[] args) {
  6. ZonedDateTime now = ZonedDateTime.now();
  7. DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
  8. System.out.println(dtf.format(now));
  9. }
  10. }

该示例使用java.time.ZonedDateTime获取当前日期时间,并使用java.time.format.DateTimeFormatter对其进行格式化。

  1. ZonedDateTime now = ZonedDateTime.now();

ZonedDateTime.now()方法从系统时钟以默认时区获取当前日期时间。

使用Clock获取当前日期和时间

java.time.Clock使用时区提供对当前时刻,日期和时间的访问。

JavaCurrentDateTimeClock.java

  1. package com.zetcode;
  2. import java.time.Clock;
  3. import java.time.Instant;
  4. public class JavaCurrentDateTimeClock {
  5. public static void main(String[] args) {
  6. Clock clock = Clock.systemDefaultZone();
  7. Instant now = clock.instant();
  8. System.out.println(now);
  9. }
  10. }

该示例使用java.time.Clock获取当前日期时间。

  1. Clock clock = Clock.systemDefaultZone();

Clock.systemDefaultZone()方法获得一个时钟,该时钟使用最佳可用系统时钟返回当前时刻,并使用默认时区转换为日期和时间。

使用java.util的当前日期和时间

java.utilDateCalendar)中可用的类被认为已过时。 这是原始的 Java 日期和时间 API。

使用Date获取当前日期和时间

java.util.Date表示特定的时间瞬间,精度为毫秒。

JavaCurrentDateTimeDate.java

  1. package com.zetcode;
  2. import java.text.DateFormat;
  3. import java.text.SimpleDateFormat;
  4. import java.util.Date;
  5. public class JavaCurrentDateTimeDate {
  6. public static void main(String[] args) {
  7. Date now = new Date();
  8. DateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
  9. System.out.println(df.format(now));
  10. }
  11. }

该示例使用java.util.Date获取当前日期时间,并使用java.text.SimpleDateFormat对其进行格式化。

使用Calendar获取当前日期和时间

java.util.Calendar表示特定的时间瞬间,精度为毫秒。

JavaCurrentDateTimeCalendar.java

  1. package com.zetcode;
  2. import java.text.DateFormat;
  3. import java.text.SimpleDateFormat;
  4. import java.util.Calendar;
  5. import java.util.Date;
  6. public class JavaCurrentDateTimeCalendar {
  7. public static void main(String[] args) {
  8. Date now = Calendar.getInstance().getTime();
  9. DateFormat df = new SimpleDateFormat("yyyy-MM-d HH:mm:ss");
  10. System.out.println(df.format(now));
  11. }
  12. }

该示例使用java.util.Calendar获取当前日期时间,并使用java.text.SimpleDateFormat对其进行格式化。

使用 Joda 时间库的当前日期和时间

Joda time 是第三方日期和时间库,用于替换过时的 JDK 日期时间 API。

  1. <dependency>
  2. <groupId>joda-time</groupId>
  3. <artifactId>joda-time</artifactId>
  4. <version>2.9.9</version>
  5. </dependency>

我们需要joda-time依赖项。

使用 Joda LocalDateTime获取当前日期和时间

org.joda.time.LocalDateTime是不可修改的日期时间类,表示没有时区的日期时间。

JavaCurrentDateTimeJoda.java

  1. package com.zetcode;
  2. import org.joda.time.LocalDateTime;
  3. import org.joda.time.format.DateTimeFormat;
  4. import org.joda.time.format.DateTimeFormatter;
  5. public class JavaCurrentDateTimeJoda {
  6. public static void main(String[] args) {
  7. LocalDateTime ldt = new LocalDateTime();
  8. DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyy, MMMM dd, HH:mm:ss");
  9. String str = fmt.print(ldt);
  10. System.out.println(str);
  11. }
  12. }

该示例使用org.joda.time.LocalDateTime获取当前日期时间,并使用org.joda.time.format.DateTimeFormatter对其进行格式化。

使用 Joda DateTime获取当前日期和时间

org.joda.time.DateTime是不可修改的日期时间类的标准实现。

JavaCurrentDateTimeJoda2.java

  1. package com.zetcode;
  2. import org.joda.time.DateTime;
  3. import org.joda.time.format.DateTimeFormat;
  4. import org.joda.time.format.DateTimeFormatter;
  5. public class JavaCurrentDateTimeJoda2 {
  6. public static void main(String[] args) {
  7. DateTime dt = DateTime.now();
  8. DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyy, MMMM dd, HH:mm:ss");
  9. String str = fmt.print(dt);
  10. System.out.println(str);
  11. }
  12. }

该示例使用org.joda.time.DateTime获取当前日期时间,并使用org.joda.time.format.DateTimeFormatter对其进行格式化。

在本教程中,我们展示了如何获取 Java 中的当前日期和时间。 您可能也对相关教程感兴趣: Java HashSet教程Java HashMap教程Java 中的HashMap迭代Java static关键字Java Swing 教程Java 教程用 Java 显示图像