在Java中获取“unixtime”

2022-08-31 05:14:19

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?


答案 1

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

如注释中所述,对于 unixTime 变量的类型,您通常需要一个原始的 long(小写 l long)而不是一个盒装对象 long(capital-L Long)。

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

答案 2

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

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

Instant.now()返回一个即时,表示当前系统时间。随着你得到纪元秒(unix时间)从.getEpochSecond()Instant


推荐