在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)
或者我错误地做错了可以有人解释
答案 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。