如何获得Java 8年代学的时代限制?

时间:2016-07-11 08:05:34

标签: java java-8

我在同时使用Hijrah和Gregorian年表的应用程序中使用Java 8 Date and Time API。 Hijrah日历的支持范围有限,并且日期超出范围"如果我尝试创建超出此范围的日期(例如,使用Chronology类的zonedDateTime方法),则出现异常。我搜索了文档,但我找不到任何可用于获得年表支持日期范围的官方方法。我设法通过测试抛出异常的时间来计算Hijrah年表的最大日期,但这并不理想,因为我可能使用不同的java版本,并且似乎支持的日期范围可能会在不同的Java更新中发生变化。是否有任何官方方法可以获得Java 8年表的时代限制,例如Hijrah年表?我感谢任何帮助。谢谢。

1 个答案:

答案 0 :(得分:4)

您可以使用Chronology.range()方法。例如:

import java.time.*;
import java.time.chrono.*;
import java.time.temporal.*;

public class Test {
    public static void main(String[] args) {
        Chronology hijrah = HijrahChronology.INSTANCE;
        ValueRange range = hijrah.range(ChronoField.YEAR);
        System.out.println(range.getMinimum());
        System.out.println(range.getMaximum());
    }
}

这表明有效年份为1300-1600。

我不清楚这是否意味着1300年的整个和1600年的整个是有效的,但我怀疑 - 你可能为此写一些实验测试。