一尘不染

在Java中获得“ unixtime”

java

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?


阅读 308

收藏
2020-03-21

共2个答案

一尘不染

避免使用System.currentTimeMillis()创建Date对象。除以1000将使你进入Unix时代。

如注释中所述,对于unixTime变量的类型,通常希望使用基元长(小写l长)而不是盒装对象长(大写L长)。

long unixTime = System.currentTimeMillis() / 1000L;
2020-03-21
一尘不染

Java 8添加了用于处理日期和时间的新API。使用Java 8,你可以使用

import java.time.Instant
...
long unixTimestamp = Instant.now().getEpochSecond();

Instant.now()返回表示当前系统时间的Instant。随着getEpochSecond()你获得的纪元秒(unix时间)Instant。

2020-03-21