使用 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"