在Java中获取“ unixtime”

问题描述 投票:249回答:2

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?

java unix-timestamp
2个回答
461
投票

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

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

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

262
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.