ZetCode

Java Unix 时间

上次修改时间:2024 年 7 月 16 日

在本文中,我们将展示如何在 Java 中计算 Unix 时间。

Unix 时间(也称为 POSIX 时间或 Epoch 时间)是一种描述时间点的系统,定义为自协调世界时 (UTC) 1970 年 1 月 1 日星期四 00:00:00 以来经过的秒数,减去此后发生的闰秒数。

Unix 时间广泛应用于类 Unix 操作系统,但也应用于许多其他计算系统和文件格式。 它经常被网站管理员使用,因为 Unix 时间戳可以同时代表所有时区。

Unix 时间戳应存储为 long 数字;如果它们存储为 Java int 值,则会导致 2038 年问题。 32 位变量无法编码 2038 年 1 月 19 日 03:14:07 UTC 之后的时间。

$ date +%s
1721218154

我们可以使用 date 命令来确定 Linux 上的 Unix 时间。 可以在 https://www.unixtimestamp.com/ 上确定 Unix 时间。

Java Unix 时间示例

以下示例计算 Unix 时间。

Main.java
import java.time.Instant;
import java.util.Date;

void main() {

    long ut1 = Instant.now().getEpochSecond();
    System.out.println(ut1);

    long ut2 = System.currentTimeMillis() / 1000L;
    System.out.println(ut2);

    Date now = new Date();
    long ut3 = now.getTime() / 1000L;
    System.out.println(ut3);
}

在 Java 中计算 Unix 时间有三种基本方法。

long ut1 = Instant.now().getEpochSecond();
System.out.println(ut1);

自 Java 8 以来,可以使用 Instant 及其 getEpochSecond 来计算 Unix 时间。

long ut2 = System.currentTimeMillis() / 1000L;
System.out.println(ut2);

在这里,我们使用 System.currentTimeMillis 方法计算 Unix 时间。 我们需要将毫秒转换为秒。

Date now = new Date();
long ut3 = now.getTime() / 1000L;
System.out.println(ut3);

我们还可以使用旧的 Date 类来计算 Unix 时间。

$ java Main.java
1721218241
1721218241
1721218241

来源

Unix 时间

在本文中,我们展示了如何在 Java 中计算 Unix 时间。

作者

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

列出所有Java教程