更新
https://clojure.org/news/2024/05/23/clojure-1-12-alpha12
Alpha12 回滚了导致此问题的修改。因此,此讨论已过时。
我注意到的只是 Clojure 1.12 alpha10 改变了创建旧 #inst 日期的方式。据我所知,Java 正在尝试调整引入公历之前的老日期。
Clojure 1.11.3 的样子
user-> #inst "1582-02-24"
#inst "1582-02-24T00:00:00.000-00:00"
Clojure 1.12-alpha10 的样子
user=> #inst "1582-02-24"
#inst "1582-03-06T00:00:00.000-00:00"
我在对一个测试旧日期的老项目运行一些生成测试时发现了这个问题。我将更改我的测试以仅查看这个千年,这对我的应用程序来说没问题。我认为 Clojure 不必一定采取任何措施来缓解这种变化。我只是认为如果有人碰到这个问题的话提一下也是值得的。
更新到 Clojure 1.12 alpha 11
user=> (use 'clojure.instant)
nil
user=> (read-instant-date "1582-02-24")
#inst "1582-03-06T00:00:00.000-00:00"
user=> (read-instant-calendar "1582-02-24")
#inst "1582-02-24T00:00:00.000+00:00"
user=> (read-instant-timestamp "1582-02-24")
#inst "1582-03-06T00:00:00.000000000-00:00"