我正在尝试将包含日期(例如今天="08082013")的未格式化字符串解析为格式"08.08.2013"。
这工作:(. parse(java.text.SimpleDateFormat."ddMMyyyy")今天)
=
但是当我做(. parse(java.text.SimpleDateFormat."dd.MM.yyyy")今天)
我得到错误无法解析的日期:"08082013"
为什么?我怎样才能得到我想要的日期格式?
要从字符串获取日期,请使用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时间