在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)
或者我做错了,有人可以解释一下
首先,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)