Contents

Java 8 获取当前日期和时间

1. 简介

这篇快速文章描述了我们如何在 Java 8 中获取当前日期、当前时间和当前时间戳。

2. 当前日期

首先,让我们使用java.time.LocalDate来获取当前系统日期:

LocalDate localDate = LocalDate.now();

要获取任何其他时区的日期,我们可以使用LocalDate.now(ZoneId)

LocalDate localDate = LocalDate.now(ZoneId.of("GMT+02:30"));

我们还可以使用java.time.LocalDateTime来获取LocalDate 的实例:

LocalDateTime localDateTime = LocalDateTime.now();
LocalDate localDate = localDateTime.toLocalDate();

3. 当前时间

使用java.time.LocalTime,让我们检索当前系统时间:

LocalTime localTime = LocalTime.now();

要获取特定时区的当前时间,我们可以使用LocalTime.now(ZoneId)

LocalTime localTime = LocalTime.now(ZoneId.of("GMT+02:30"));

我们还可以使用java.time.LocalDateTime来获取 LocalTime 的实例:

LocalDateTime localDateTime = LocalDateTime.now();
LocalTime localTime = localDateTime.toLocalTime();

4. 当前时间戳

使用java.time.Instant从 Java epoch 获取时间戳。根据JavaDoc ,纪元秒数是从标准 Java 纪元 1970-01-01T00:00:00Z 开始测量的,其中纪元之后的瞬间具有正值:

Instant instant = Instant.now();
long timeStampMillis = instant.toEpochMilli();

我们可以得到 epoch-seconds 秒数:

Instant instant = Instant.now();
long timeStampSeconds = instant.getEpochSecond();