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