1. ホーム

[解決済み】System.currentTimeMillis() vs. new Date() vs. Calendar.getInstance().getTime()について)

2022-04-05 09:12:19

質問

Javaでは、次のように使用すると、パフォーマンスとリソースにどのような影響がありますか?

System.currentTimeMillis() 

vs.

new Date() 

vs.

Calendar.getInstance().getTime()

私の理解では System.currentTimeMillis() が最も効率的です。しかし、ほとんどのアプリケーションでは、人間にとって意味のあることをするためには、そのlong値をDateやそれに類するオブジェクトに変換する必要があります。

解決方法は?

System.currentTimeMillis() は、明らかに最も 効率的 はオブジェクトの生成すら行わないので new Date() は本当にlongについての薄いラッパーに過ぎないので、遠く及ばないのです。 Calendar なぜなら、かなり複雑で、日付と時刻に固有のすべての奇妙な点 (うるう年、サマータイム、タイムゾーンなど) を処理しなければならないからです。

一般に、長いタイムスタンプまたは Date オブジェクトを使用し、アプリケーション内では Calendar 実際に日付/時刻の計算を行う必要がある場合、あるいはユーザーに表示するために日付をフォーマットする必要がある場合です。もし、このようなことをたくさんしなければならないのであれば Jodaタイム は、よりすっきりとしたインターフェイスとより良いパフォーマンスのために、おそらく良いアイデアでしょう。