提问者:小点点

Clojure-解析字符串到日期


我正在尝试将包含日期(例如今天="08082013")的未格式化字符串解析为格式"08.08.2013"。

这工作:(. parse(java.text.SimpleDateFormat."ddMMyyyy")今天)=

但是当我做(. parse(java.text.SimpleDateFormat."dd.MM.yyyy")今天)我得到错误无法解析的日期:"08082013"

为什么?我怎样才能得到我想要的日期格式?


共3个答案

匿名用户

要从字符串获取日期,请使用parse。

要从日期获取字符串,请使用格式。

两者都使用格式化程序来描述转换。

=>(.format
    (java.text.SimpleDateFormat. "dd.MM.yyyy")
    (.parse
      (java.text.SimpleDateFormat. "ddMMyyyy")
      "08082013"))

"08.08.2013"

匿名用户

如果你在玩日期和时间,我建议你看看这个Clojure库,

https://github.com/clj-time/clj-time

这是大多数Clojure程序员使用的lib时间,并且基于lib joda时间java,许多人认为它比Java构建更好。

匿名用户

SimpleDateFormat的. parse方法不会生成字符串,它会读取一个字符串并生成一个java.util.Date对象。如果你想生成一个带点的字符串,你需要SimpleDateFormat和带点的地方,并在上面调用.format,给定一个java.util.Date。

看http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html或者看看clj时间