gpt4 book ai didi

clojure java-time - 日期向前移动一年?

转载 作者:行者123 更新时间:2023-12-02 10:07:38 25 4
gpt4 key购买 nike

我对 clojure.java-time 的使用感到困惑包装 Java 8 的 java.time api 的库用法。

我想要一个将日期转换为字符串格式的函数“yyyy-MM-dd'T'HH:mm:ss”格式转换为“MM/dd/YYYY hh:mm:ss a”格式。

这是我的功能:


(require '[java-time :as jt])

(defn change-ds-format [in-ds]
{:pre [string? in-ds ]}
(let [input-format "yyyy-MM-dd'T'HH:mm:ss"
output-format "MM/dd/YYYY hh:mm:ss a"]
(->> in-ds
(jt/local-date-time input-format)
(jt/format output-format))))

这看起来不错:

(change-ds-format "2019-12-28T00:00:00" )
;=> "12/28/2019 12:00:00 AM"

我不知道为什么要推迟到 2020 年?

(change-ds-format "2019-12-29T00:00:00" )
;=> "12/29/2020 12:00:00 AM"
;; Why is this one 2020 ???

我认为这可能是时区偏移问题,但我不认为它应该转移到 2020 年。

最佳答案

因为yyyy不是YYYY

来自Oracle docs for DateTimeFormatter :

 ... snip...
u year year 2004; 04
y year-of-era year 2004; 04
...snip...
Y week-based-year year 1996; 96
w week-of-week-based-year number 27
...snip...

我不太精通日期时间算术或细微差别,但我相信在基于周的年份中,今年 12 月 30 日和 31 日被算作 2020 年,因为这些日期属于第 1 周,而不是第 52 周或第 # 周。 53.

关于clojure java-time - 日期向前移动一年?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59387924/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com