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);
System.currentTimeMillis() でDateオブジェクトを作成しないでください。 1000で割るとUnix Epochができます。
コメントで述べたように、unixTime変数の型には、ボックス化されたオブジェクトのlong(大文字のL)ではなく、プリミティブのlong(小文字のl)が必要です。
long unixTime = System.currentTimeMillis() / 1000L;
Java 8では、日付と時刻を処理するための新しいAPIが追加されました。 Java 8ではあなたが使うことができます
import Java.time.Instant
...
long unixTimestamp = Instant.now().getEpochSecond();
Instant.now()
は、現在のシステム時刻を表す Instant を返します。 getEpochSecond()
では、Instant
からEpoch秒(unix time)を取得します。