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

ace*_*ner 3 ide clojure

在Java中,我有这一行

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

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

(def fmt (.forPattern DateTimeFormat ("yyyy-M-dd HH:mm:ss")))
Run Code Online (Sandbox Code Playgroud)

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

或者我做错了,有人可以解释一下

Vla*_*eev 5

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

(DateTimeFormat/forPattern args...)
Run Code Online (Sandbox Code Playgroud)

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

(.forPattern DateTimeFormat ("yyyy-M-dd HH:mm:ss"))
Run Code Online (Sandbox Code Playgroud)

"yyyy-M-dd HH:mm:ss"应该省略括号.

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

(def fmt (DateTimeFormat/forPattern "yyyy-M-dd HH:mm:ss"))
Run Code Online (Sandbox Code Playgroud)