287

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を取得するより良い方法はありますか?

4

3 に答える 3

514

System.currentTimeMillis()を使用した Date オブジェクトの作成は避けてください。1000 で割ると Unix エポックになります。

コメントで述べたように、通常、unixTime 変数の型には、ボックス化されたオブジェクト long (大文字 L Long) ではなく、プリミティブ long (小文字 l long) が必要です。

long unixTime = System.currentTimeMillis() / 1000L;
于 2009-04-08T21:58:38.820 に答える
298

Java 8 では、日付と時刻を操作するための新しい API が追加されました。Java 8では使用できます

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

Instant.now()現在のシステム時刻を表すInstantを返します。getEpochSecond()からエポック秒 (UNIX 時間) を取得しますInstant

于 2014-07-11T17:44:30.743 に答える