Date.getTime()返回自1970年1月1日以来的毫秒数。Unixtime为自1970年1月1日以来的秒数。我通常不使用Java编写代码,但是我正在进行一些错误修复。我有:
Date now = new Date(); Long longTime = new Long(now.getTime()/1000); return longTime.intValue();
有没有更好的方法来在Java中获取unixtime?
避免使用System.currentTimeMillis()创建Date对象。除以1000将使你进入Unix时代。
System.currentTimeMillis()
如注释中所述,对于unixTime变量的类型,通常希望使用基元长(小写l长)而不是盒装对象长(大写L长)。
unixTime
long unixTime = System.currentTimeMillis() / 1000L;
Java 8添加了用于处理日期和时间的新API。使用Java 8,你可以使用
import java.time.Instant ... long unixTimestamp = Instant.now().getEpochSecond();
Instant.now()返回表示当前系统时间的Instant。随着getEpochSecond()你获得的纪元秒(unix时间)Instant。
Instant.now()
Instant
getEpochSecond()
unix