3

在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: Unable to resolve symbol: DateTimeFormat in this context, compile:(ShipDataRecord.clj:65) 的异常

还是我做错了有人可以解释

4

3 回答 3

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"))
于 2013-01-01T10:50:24.480 回答
4

或者,您可以使用clj-time

于 2013-01-01T11:49:45.287 回答
1

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

于 2014-01-07T09:36:22.937 回答