什么是Clojure时间和日期库?

时间:2011-02-17 04:09:19

标签: clojure

我在http://clojure.org/libraries找不到处理时间和日期的库。有没有,或者这是我必须弄清楚如何直接用Java做的事情?

3 个答案:

答案 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