16

JavaのTimeUnitクラスにいくつかの列挙型がないのはなぜですか?

実際、最大時間単位はDAYですが、WEEK、YEARなどを使用したいのですが...

4

2 に答える 2

18

TimeUnit.DAYS定数は、暦日(真夜中から真夜中)ではなく、24時間の間隔を表します。1日(1週間、1か月、1年)を超えるものはすべてカレンダー単位であり、時間単位ではありません。カレンダー単位の期間は、使用しているカレンダーによって異なります。たとえば、夏時間が有効になったり無効になったりする週では、1週間が1時間長くなったり短くなったり、うるう年が1日長くなったりします。そのため、カレンダ単位をTimeUnit列挙に含めることは意味がありません。

于 2012-06-07T17:11:26.290 に答える
0

Java 8では、ChronoUnitが導入され、NANOS(ナノ秒)とCENTURIES、MILLENIA、さらにはFOREVERの間のすべての通常の時間単位が1つの列挙型に含まれています:https ://docs.oracle.com/javase/8/docs/api/java /time/temporal/ChronoUnit.html (選択した回答に対するJulien Kroneggのコメントも参照)

于 2019-01-09T12:47:50.700 に答える