使用 Java 8 java.time.LocalDate
,您可以计算中国新年日期吗?
答案 0 :(得分:1)
可能不是。
Oracle Documentation表示此函数使用公历系统。农历新年以中国历和农历为基础。 (Source)
答案 1 :(得分:0)
没有外部库肯定是不可能的,因为标准Java不包含中文日历。中国新年的计算需要复杂的天文计算,标准Java也没有天文学支持。
作为解决方法,请使用我的库Time4J(v4.35),然后编写以下代码:
LocalDate gregorian = LocalDate.now(ZoneId.of("Asia/Shanghai"));
ChineseCalendar cc = ChineseCalendar.ofNewYear(gregorian.getYear());
LocalDate newYearAsGregorian = cc.transform(PlainDate.axis()).toTemporalAccessor();
System.out.println(
newYearAsGregorian); // 2018-02-16
System.out.println(
"Year of the "
+ cc.get(ChineseCalendar.YEAR_OF_CYCLE).getZodiac(Locale.ENGLISH));
// Year of the Dog
有关详细信息,另请参阅API。