如果我尝试将java.sql.Date
设置为
新的java.sql.Date(1582-1900,09,14)
它让我回头
1582-10-24
所以相差10天。如何解决这个问题?
答案 0 :(得分:8)
你确定日期存在吗?
Wikipedia says格里高利日历(这是你可能正在使用的日历)于1582年10月15日开始。
当新日历投入使用时,自尼西亚议会以来13个世纪以来累积的错误被删除了10天。朱利安历日在1582年10月4日星期四之后是格里高利历的第一天,即1582年10月15日星期五(工作日的周期没有受到影响)。
如果您需要在此前几天处理,您可能需要编写一些更复杂的代码。
答案 1 :(得分:4)
这是由于当年日历从Julian切换到Gregorian。 (后者有朱利安历法所缺少的100和400闰年修正。这说明了累积的10天差异。)
请注意,一些国家 - 特别是英格兰 - 直到1752年才采用该日历。例如,俄罗斯直到20世纪才采用它!
根据经验,如果您在1752年之前使用日期,那么您应该咨询历史学家。