# Java Unix 时间

原文：http://zetcode.com/java/unixtime/

Java Unix 时间教程展示了如何使用 Java 计算 Unix 时间。

Unix 时间（也称为 POSIX 时间或纪元时间），是一种用于描述时间点的系统，该时间点定义为自 00:00:00 协调世界时（UTC）起经过的秒数 ，1970 年 1 月 1 日，星期四，减去此后发生的秒数。

Unix 时间已广泛用于类似 Unix 的操作系统，但也用于许多其他计算系统和文件格式。 它是网站管理员经常使用的，因为 Unix 时间戳可以一次表示所有时区。

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

```java
$ date +%s
1517213809

```

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

## Java Unix 时间示例

以下示例计算 Unix 时间。

`JavaUnixTimeEx.java`

```java
package com.zetcode;

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

public class JavaUnixTimeEx {

    public static void main(String[] args) {

        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 时间的三种基本方法。

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

```

从 Java8 开始，可以使用`Instant`及其`getEpochSecond()`计算 Unix 时间。

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

```

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

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

```

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

在本教程中，我们展示了如何使用 Java 计算 Unix 时间。 您可能也对相关教程感兴趣： [Java `TemporalAdjusters`教程](/java/temporaladjusters/)， [Java 文件教程](/java/file/)， [Java `LocalTime`教程](/java/localtime/)， [Java 创建目录](/java/createdirectory/)， [用 Java 复制文件](/java/copyfile/)，[用 Java 创建文件](/java/createfile/)， [Java 教程](/lang/java/)，[用 Java 读取文本文件](/articles/javareadtext/)和[读写 Java 中的 ICO 图像](/articles/javaico/)。