在Java中获得“unixtime”

时间:2009-04-08 21:55:26

标签: java unix-timestamp

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?

更新

根据John M的建议,我最终得到了:

return (int) (System.currentTimeMillis() / 1000L);

2 个答案:

答案 0 :(得分:440)

避免使用System.currentTimeMillis()创建Date对象。除以1000可以获得Unix时代。

正如评论中所提到的,对于unixTime变量的类型,通常需要一个原始的long(小写l长)而不是boxed对象long(capital-L Long)。

long unixTime = System.currentTimeMillis() / 1000L;

答案 1 :(得分:238)

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

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

Instant.now()返回表示当前系统时间的Instant。使用getEpochSecond(),您可以从Instant获得纪元秒(unix时间)。