我在http://clojure.org/libraries找不到处理时间和日期的库。有没有,或者这是我必须弄清楚如何直接用Java做的事情?
答案 0 :(得分:52)
clj-time是Java Joda-Time的包装。
如果您使用Leiningen或Maven,可以通过Clojars将其添加到项目中。
GitHub page上有很多样本,展示了如何进行日期算术和解析/格式化。例如:
(in-minutes (duration (date-time 1986 10 2) (date-time 1986 10 14)))
;; gives 17280
(def custom-formatter (formatter \"yyyyMMdd\"))
(parse custom-formatter "20100311")
;; gives #<DateTime 2010-03-11T00:00:00.000Z>
(unparse custom-formatter (date-time 2010 10 3))
;; gives "20101003"
答案 1 :(得分:4)
这是一个老问题,但Java 8中新的LocalDate类是无需库的方法来实现这一目标。
(ns example
(:import (java.time LocalDate format.DateTimeFormatter)))
(def formatting (DateTimeFormatter/ofPattern
"MM/dd/yyyy"))
(LocalDate/parse "08/06/2015" formatting)
答案 2 :(得分:1)
我使用了clj-time
,它在过去没有任何问题包装了Joda Time。
还有dm3/clojure.java-time
,它包装了Java 8 Date-Time API。
自Clojure 1.8以来,还有一个相关的命名空间:clojure.instant。