{"record":{"id":"8f0906cb989f3d05","repo":"chinabugotech/hutool","slug":"1900-2100","errorCode":null,"errorMessage":"只支持1900-2100之间的日期获取节气","messagePattern":"只支持1900-2100之间的日期获取节气","errorType":"exception","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"hutool-core/src/main/java/cn/hutool/core/date/chinese/SolarTerms.java","lineNumber":182,"sourceCode":"\t * @param year 公历年\n\t * @param mouth 公历月，从1开始\n\t * @param day 公历日，从1开始\n\t * @return 返回指定年月日所处的节气，若不是一个节气则返回空字符串\n\t */\n\tpublic static String getTerm(int year, int mouth, int day) {\n\t\treturn getTerm(LocalDate.of(year, mouth, day));\n\t}\n\n\t/**\n\t * 根据年月日获取节气, 内部方法，不对月和日做有效校验\n\t * @param year 公历年\n\t * @param mouth 公历月，从1开始\n\t * @param day 公历日，从1开始\n\t * @return 返回指定年月日所处的节气，若不是一个节气则返回空字符串\n\t */\n\tprivate static String getTermInternal(int year, int mouth, int day) {\n\t\tif (year < 1900 || year > 2100) {\n\t\t\tthrow new IllegalArgumentException(\"只支持1900-2100之间的日期获取节气\");\n\t\t}\n\n\t\tfinal String termTable = S_TERM_INFO[year - 1900];\n\n\t\t// 节气速查表中每5个字符含有4个节气，通过月份直接计算偏移\n\t\tfinal int segment = (mouth + 1) / 2 - 1;\n\t\tfinal int termInfo = Integer.parseInt(termTable.substring(segment * 5, (segment + 1) * 5), 16);\n\t\tfinal String termInfoStr = String.valueOf(termInfo);\n\n\t\tfinal String[] segmentTable = new String[4];\n\t\tsegmentTable[0] = termInfoStr.substring(0, 1);\n\t\tsegmentTable[1] = termInfoStr.substring(1, 3);\n\t\tsegmentTable[2] = termInfoStr.substring(3, 4);\n\t\tsegmentTable[3] = termInfoStr.substring(4, 6);\n\n\t\t// 奇数月份的节气在前2个，偶数月份的节气在后两个\n\t\tfinal int segmentOffset = (mouth & 1) == 1 ? 0 : 2;\n","sourceCodeStart":164,"sourceCodeEnd":200,"githubUrl":"https://github.com/chinabugotech/hutool/blob/8870454b2a0c29cc6ffd31dcf5667c8ceb2fc442/hutool-core/src/main/java/cn/hutool/core/date/chinese/SolarTerms.java#L164-L200","documentation":"Error \"只支持1900-2100之间的日期获取节气\" thrown in chinabugotech/hutool.","triggerScenarios":"Thrown at hutool-core/src/main/java/cn/hutool/core/date/chinese/SolarTerms.java:182 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Only request solar terms for dates between years 1900 and 2100.","Clamp or validate the year before calling the solar-term lookup."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"8870454b2a0c29cc6ffd31dcf5667c8ceb2fc442","analyzedAt":"2026-08-14T04:01:12.892Z","schemaVersion":2},"datasetVersion":"2026-08-14T05:17:29.042Z"}