2013-01-01 26 views
3

使用org.joda時間在Java中,我有這行Clojure中無法用Clojure

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

我試圖轉換爲Clojure的代碼,我已導入的文件本身 但此行似乎並不工作

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

給CompilerException了java.lang.RuntimeException的異常:無法解析符號:DateTimeFormat在這種情況下,編譯:(ShipDataRecord.clj:65)

還是我做的錯誤的話可能有人善意解釋

回答

5

首先,Clojure中的靜態方法的調用是這樣的:

(DateTimeFormat/forPattern args...) 

其次,你不應該環繞帶括號的方法/函數的參數,即這是不正確(不考慮現在的無效語法調用靜態方法):約"yyyy-M-dd HH:mm:ss"

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

括號應該被排除在外。

所以,做你想要什麼有效的辦法是:

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