ZetCode

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 模拟时间轴上的单个瞬时点。 这可能用于记录应用程序中的事件时间戳。

Main.java
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 创建一个没有时区的日期时间。

Main.java
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 是具有时区的日期时间的不可变表示。

Main.java
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 提供对使用时区的当前瞬间、日期和时间的访问。

Main.java
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 中可用的类(DateCalendar)已过时。 这是原始的 Java 日期和时间 API。

使用 Date 获取当前日期时间

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

Main.java
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 表示时间中的特定瞬间,精度为毫秒。

Main.java
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 是一个不可修改的日期时间类,表示没有时区的日期时间。

Main.java
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 是不可修改的日期时间类的标准实现。

Main.java
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 中获取当前日期和时间。

作者

我的名字是 Jan Bodnar,我是一位充满热情的程序员,拥有丰富的编程经验。 我自 2007 年以来一直在撰写编程文章。迄今为止,我已经撰写了 1,400 多篇文章和 8 本电子书。 我拥有超过十年的编程教学经验。

列出所有Java教程