JAVA 如何获取毫秒
获取当前时间的毫秒数
在Java中获取当前时间的毫秒数有多种方法,以下是几种常见的方式:
使用System.currentTimeMillis()
long currentTimeMillis = System.currentTimeMillis();
System.out.println("当前毫秒数:" + currentTimeMillis);
该方法返回自1970年1月1日00:00:00 GMT以来的毫秒数,简单高效,适用于大多数场景。
使用Instant类(Java 8及以上)
import java.time.Instant;
long epochMilli = Instant.now().toEpochMilli();
System.out.println("当前毫秒数:" + epochMilli);
Instant.now()获取当前时间戳,toEpochMilli()将其转换为毫秒数。
使用Calendar类
import java.util.Calendar;
long timeInMillis = Calendar.getInstance().getTimeInMillis();
System.out.println("当前毫秒数:" + timeInMillis);
Calendar.getInstance()获取当前时间的Calendar对象,getTimeInMillis()返回毫秒数。
使用Date类
import java.util.Date;
long time = new Date().getTime();
System.out.println("当前毫秒数:" + time);
Date对象的getTime()方法返回自1970年1月1日以来的毫秒数。
性能比较
System.currentTimeMillis()是最直接且性能最优的方法,适用于不需要高精度时间戳的场景。Instant类提供了更现代的时间处理方式,适用于Java 8及更高版本。Calendar和Date类的方法略显过时,但在旧代码中仍可能遇到。

注意事项
- 如果需要更高精度的时间戳(如纳秒级),可以使用
System.nanoTime(),但需注意其返回值与系统时间无关,仅适用于测量时间间隔。 - 在多线程环境中,确保时间获取操作的线程安全性,尤其是使用
Calendar等非线程安全的类时。






