如何运用Joda-Time的GJChronology实现1582年日期计算?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1083个文字,预计阅读时间需要5分钟。
1582年是历史上的一个特殊年份,标志着格里历的实行,取代了旧儒略历。
当使用标准的日期时间库(如Java的Joda-Time默认ISO chronology或SQL的日期函数)计算1582年10月的日数时,可能会得到30天或31天的结果,这与历史事实不符。这是因为这些库通常采用“前推式”(proleptic)日历系统,即它们将当前的格里高利历规则向前应用到所有历史日期,即使在格里高利历尚未被发明或采纳之前。这种方法虽然简化了现代日期的处理,但在处理1582年之前的历史日期时,会导致不准确的结果。
默认日历行为的问题
以Joda-Time为例,其默认的ISO Chronology是前推式的。这意味着它会假设格里高利历的闰年规则自始至终都有效。
本文共计1083个文字,预计阅读时间需要5分钟。
1582年是历史上的一个特殊年份,标志着格里历的实行,取代了旧儒略历。
当使用标准的日期时间库(如Java的Joda-Time默认ISO chronology或SQL的日期函数)计算1582年10月的日数时,可能会得到30天或31天的结果,这与历史事实不符。这是因为这些库通常采用“前推式”(proleptic)日历系统,即它们将当前的格里高利历规则向前应用到所有历史日期,即使在格里高利历尚未被发明或采纳之前。这种方法虽然简化了现代日期的处理,但在处理1582年之前的历史日期时,会导致不准确的结果。
默认日历行为的问题
以Joda-Time为例,其默认的ISO Chronology是前推式的。这意味着它会假设格里高利历的闰年规则自始至终都有效。

