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を取得するより良い方法はありますか?
27
これをintにキャストしたので、2038年問題(UNIXのY2Kに相当)が発生しました。Unixエポックが20億に達し、ネガティブにロールオーバーするのはこのときです。修正は、64ビットUnixに移行することです。Javaの同等物は、それを長いままにすることです。
—
John M
はい、承知しています。これがインターフェースしているコードは、unixtimeに32ビット整数を期待しています。
—
ゲイリーリチャードソン
2038年はもうすぐです。
—
パセリエ2012年
currentTimeMillisの適切な名前または標準はありますか?ドキュメントでは、ミリ秒バージョンのUNIX時間と呼んでいます。
—
トム
ソフトウェアがオーバーフローを乗り越えたい場合は
—
bryc 2018
long
、ではなくを使用してくださいint
。int
1秒= 4秒などの異なる細分度を使用している場合を除き、タイムスタンプを使用する理由は実際にはありません。どちらか、またはコードを非表示にして、将来の世代が自分がどれほど無能であったかを確認できないようにします。