使用clj-time将Clojure #inst 瞬间转换为Joda时间



使用 clj-time 库解析 Clojure 时间时刻(如 #inst "2017-01-01T12:00:00" 到 Joda 时间(的正确方法是什么?

如果您有java.util.Date对象:

(type #inst "2017-01-01T12:00:00+02:00")
;;=> java.util.Date

clj-time有一个clj-time.coerce命名空间,其中包含一个from-date函数,该函数将java.util.Date对象作为输入。例:

(require '[clj-time.coerce :as c])
((juxt type str) (c/from-date #inst "2017-01-01T12:00:00"))
;;=> [org.joda.time.DateTime "2017-01-01T12:00:00.000Z"]
此外,

clj-time 现在提供了一个数据读取器,可以自动将 EDN 中的日期强制到/从 joda 日期时间:clj-time EDN 支持

(clojure.edn/read-string {:readers clj-time.coerce/data-readers}
                         "#clj-time/date-time "2019-07-10T06:00:00.000Z"")
==>
#clj-time/date-time "2019-07-10T06:00:00.000Z"

最新更新