原文: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 之后对时间进行编码。

  1. $ date +%s
  2. 1517213809

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

Java Unix 时间示例

以下示例计算 Unix 时间。

JavaUnixTimeEx.java

  1. package com.zetcode;
  2. import java.time.Instant;
  3. import java.util.Date;
  4. public class JavaUnixTimeEx {
  5. public static void main(String[] args) {
  6. long ut1 = Instant.now().getEpochSecond();
  7. System.out.println(ut1);
  8. long ut2 = System.currentTimeMillis() / 1000L;
  9. System.out.println(ut2);
  10. Date now = new Date();
  11. long ut3 = now.getTime() / 1000L;
  12. System.out.println(ut3);
  13. }
  14. }

用 Java 计算 Unix 时间的三种基本方法。

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

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

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

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

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

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

在本教程中,我们展示了如何使用 Java 计算 Unix 时间。 您可能也对相关教程感兴趣: Java TemporalAdjusters教程Java 文件教程Java LocalTime教程Java 创建目录用 Java 复制文件用 Java 创建文件Java 教程用 Java 读取文本文件读写 Java 中的 ICO 图像