Clojure的时间和日期库是什么?

Clojure的时间和日期库是什么?,clojure,Clojure,我在中找不到处理时间和日期的库。是否有,或者这是我必须弄清楚如何直接使用Java的吗?是Java Joda时代的包装器 如果使用Leiningen或Maven,可以通过将其添加到项目中 上有很多示例,展示了如何进行日期算术和解析/格式化。例如: (in-minutes (duration (date-time 1986 10 2) (date-time 1986 10 14))) ;; gives 17280 (def custom-formatter (formatter \"yyyyMMd

我在中找不到处理时间和日期的库。是否有,或者这是我必须弄清楚如何直接使用Java的吗?

是Java Joda时代的包装器

如果使用Leiningen或Maven,可以通过将其添加到项目中

上有很多示例,展示了如何进行日期算术和解析/格式化。例如:

(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"
(以分钟为单位(持续时间(日期时间1986 102)(日期时间1986 1014)))
;; 给17280
(def自定义格式化程序(格式化程序\“yyyyMMdd\”)
(解析自定义格式化程序“20100311”)
;; 给予#
(取消使用自定义格式化程序(日期时间2010 10 3))
;; 给出“20101003”

这是一个老问题,但Java 8中新的LocalDate类是实现这一点的无库方法

(ns example
  (:import (java.time LocalDate format.DateTimeFormatter)))

(def formatting (DateTimeFormatter/ofPattern
                 "MM/dd/yyyy"))

(LocalDate/parse "08/06/2015" formatting)
我用过,它在过去没有任何问题地包装了Joda时间

还有,它包装了Java8日期时间API


自Clojure 1.8:.以来,还有一个相关的名称空间。

如何使用此库获取当前日期时间?我在自述文件中没有看到它。
duration
似乎被重命名为
interval
@Feng我看了一下clj time github的问题,看起来duration和interval在库中是不同的概念(duration是两次之间的相对距离,而interval有一个绝对的开始和结束)。看起来它们接近于重新添加持续时间;如果您(或任何其他人)正在观看,请随时编辑答案,如果/当持续时间被重新添加-否则,我想我的答案中的第一个例子可以删除或重述。我还建议阅读的第一(或全部)章节。它还介绍了
clj-time
的用法。它是否已被修改为使用Java8?但是LocalDate/parse并没有返回一个#inst-literal,而是返回一个#object[Java.time.LocalDate]…@GillesPhilippart。无论如何,LocalDates是不可变的。