JavaのTimeUnitクラスにいくつかの列挙型がないのはなぜですか?
実際、最大時間単位はDAYですが、WEEK、YEARなどを使用したいのですが...
JavaのTimeUnitクラスにいくつかの列挙型がないのはなぜですか?
実際、最大時間単位はDAYですが、WEEK、YEARなどを使用したいのですが...
TimeUnit.DAYS
定数は、暦日(真夜中から真夜中)ではなく、24時間の間隔を表します。1日(1週間、1か月、1年)を超えるものはすべてカレンダー単位であり、時間単位ではありません。カレンダー単位の期間は、使用しているカレンダーによって異なります。たとえば、夏時間が有効になったり無効になったりする週では、1週間が1時間長くなったり短くなったり、うるう年が1日長くなったりします。そのため、カレンダ単位をTimeUnit
列挙に含めることは意味がありません。
Java 8では、ChronoUnitが導入され、NANOS(ナノ秒)とCENTURIES、MILLENIA、さらにはFOREVERの間のすべての通常の時間単位が1つの列挙型に含まれています:https ://docs.oracle.com/javase/8/docs/api/java /time/temporal/ChronoUnit.html (選択した回答に対するJulien Kroneggのコメントも参照)