Java获取当前时间戳的几种方法
作者:RiverSoul
时间:2025-11-30
浏览:0
最推荐使用Instant.now().toEpochMilli()获取时间戳,1.System.currentTimeMillis()高效简单;2.Date().getTime()已过时;3.Instant支持纳秒且线程安全;4.LocalDateTime需结合时区转换。
最推荐使用Instant.now().toEpochMilli()获取时间戳,1. System.currentTimeMillis()高效简单;2. Date().getTime()已过时;3. Instant支持纳秒且线程安全;4. LocalDateTime需结合时区转换。

在 Java 中获取当前时间戳有多种方式,适用于不同的场景和需求。以下是几种常用的方法,涵盖从传统到现代的时间处理方式。
使用 System.currentTimeMillis()
这是最简单、最常见的获取时间戳的方式,返回自 1970 年 1 月 1 日 00:00:00 UTC 起的毫秒数。示例代码:
long timestamp = System.currentTimeMillis();
System.out.println("当前时间戳(毫秒): " + timestamp);
这种方式效率高,适合大多数需要时间戳的场景,比如日志记录、性能监控等。
使用 java.util.Date
通过创建 Date 对象并调用 getTime() 方法也可以获取时间戳。示例代码:
import java.util.Date;
Date date = new Date();
long timestamp = date.getTime();
System.out.println("当前时间戳(毫秒): " + timestamp);
虽然功能正常,但 Date 类已被认为是过时的,建议优先使用更现代的 API。
使用 java.time.Instant(Java 8+ 推荐)
Instant 是 Java 8 引入的现代化时间 API,表示时间线上的一个瞬时点,默认基于 UTC 时区。示例代码:
import java.time.Instant;
Instant now = Instant.now();
long timestamp = now.toEpochMilli(); // 毫秒
long secondTimestamp = now.getEpochSecond(); // 秒
System.out.println("毫秒时间戳: " + timestamp);
System.out.println("秒级时间戳: " + secondTimestamp);
推荐在新项目中使用 Instant,它线程安全且 API 更清晰。
使用 LocalDateTime 和 ZoneOffset
如果你需要结合本地时间处理时间戳,可以配合 ZoneOffset 使用。示例代码:
import java.time.LocalDateTime;
import java.time.ZoneOffset;
LocalDateTime now = LocalDateTime.now();
long timestamp = now.toEpochSecond(ZoneOffset.UTC);
System.out.println("秒级时间戳: " + timestamp);
注意:toEpochSecond 需要指定时区偏移,否则无法转换。
总结对比
- System.currentTimeMillis():最直接,性能好,适合简单场景。
- Date.getTime():可用但不推荐,API 设计较老。
- Instant.now().toEpochMilli():现代 Java 推荐方式,功能丰富,支持纳秒精度。
- LocalDateTime.toEpochSecond():适合需要本地时间逻辑的场景,需手动处理时区。
作者最新文章
微软推出Project Zenith:面向Windows 11开发者的AI硬件加速方案
2026-09-08 18:15
打破流量垄断,让平台经济释放普惠红利
2026-09-08 18:07
Arm AGI CPU详解:136核Neoverse V3,3nm双芯粒架构与AI数据中心部署
2026-09-08 17:18
Windows安装Docker教程:启用WSL2并运行第一个容器验证
2026-09-04 09:26
PDF转Word操作指南:在线与本地转换方法及格式检查
2026-09-03 16:03
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多

































