无法在clojure中使用org.joda时间

时间:2013-01-01 09:38:40

标签: ide clojure

在Java中我有这一行

public static final DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyy-M-dd HH:mm:ss");

在clojure我试图转换为clojure代码,我已导入文件本身 但这条线似乎不起作用

(def fmt (.forPattern DateTimeFormat ("yyyy-M-dd HH:mm:ss")))

给出CompilerException的异常java.lang.RuntimeException:无法在此上下文中解析symbol:DateTimeFormat,编译:(ShipDataRecord.clj:65)

或者我错误地做错了可以有人解释

3 个答案:

答案 0 :(得分:5)

首先,clojure中的静态方法如下所示:

(DateTimeFormat/forPattern args...)

其次,你不应该用括号括起方法/函数参数,即这是不正确的(忽略现在调用静态方法的无效语法):

(.forPattern DateTimeFormat ("yyyy-M-dd HH:mm:ss"))

"yyyy-M-dd HH:mm:ss"周围的括号应该省略。

所以,做你想做的事的有效方法是:

(def fmt (DateTimeFormat/forPattern "yyyy-M-dd HH:mm:ss"))

答案 1 :(得分:4)

或者,您可以使用clj-time

答案 2 :(得分:1)

由于您已熟悉Joda-Time,因此可以使用Clojure.Joda-Time