返回首页

Java 时间戳:获取、转换与运算的代码示例

Java 通过 java.time 操作 Unix 时间戳的示例代码,包含秒级/毫秒级获取、时间戳与日期互转、以及时间加减等常见需求。下面按常见场景整理了 Java 的 4 段示例代码,直接复制即可使用。

获取时间戳

获取当前时刻的 Unix 时间戳,区分秒级与毫秒级两种精度。

// 获取当前时间戳(毫秒)
long tsMillis = System.currentTimeMillis();

// 获取当前时间戳(秒)
long tsSeconds = Instant.now().getEpochSecond();

System.out.println(tsSeconds + " " + tsMillis);

时间戳转日期

将 Unix 时间戳还原为人类可读的日期时间字符串,可自定义格式。

import java.time.*;
import java.time.format.DateTimeFormatter;

// 时间戳(秒)转日期时间
long ts = 1690000000L;
LocalDateTime dt = LocalDateTime.ofInstant(
    Instant.ofEpochSecond(ts), ZoneId.systemDefault());

System.out.println(dt.format(
    DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));

日期转时间戳

把指定的日期时间转换为 Unix 时间戳,常用于存储与时间计算。

import java.time.*;
import java.time.format.DateTimeFormatter;

// 日期时间转时间戳(秒)
LocalDateTime dt = LocalDateTime.parse("2023-07-22 06:26:40",
    DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
long ts = dt.atZone(ZoneId.systemDefault()).toEpochSecond();

System.out.println(ts);

时间戳运算

基于时间戳做加减(如加一天),用于到期、倒计时等时间推算。

import java.time.Instant;
import java.time.temporal.ChronoUnit;

// 时间戳运算:加 1 天
long ts = 1690000000L;
long tomorrow = Instant.ofEpochSecond(ts)
    .plus(1, ChronoUnit.DAYS).getEpochSecond();

System.out.println(tomorrow);

相关工具