【发布时间】:2014-11-24 22:48:52
【问题描述】:
在 clojure 中,我想在当前日期添加天数,谁能指导我。获取当前日期如下,现在假设我想增加 7 天,如何获得新日期?
(.format (java.text.SimpleDateFormat. "MM/dd/yyyy") (java.util.Date.))
【问题讨论】:
标签: clojure functional-programming
在 clojure 中,我想在当前日期添加天数,谁能指导我。获取当前日期如下,现在假设我想增加 7 天,如何获得新日期?
(.format (java.text.SimpleDateFormat. "MM/dd/yyyy") (java.util.Date.))
【问题讨论】:
标签: clojure functional-programming
这可行:
(java.util.Date. (+ (* 7 86400 1000) (.getTime (java.util.Date.)))
目前我更喜欢使用System/currentTimeMillis:
(java.util.Date. (+ (* 7 86400 1000) (System/currentTimeMillis)))
或者你可以使用clj-time,这是一个更好的处理时间的api(它是Joda Time的包装器)。来自自述文件:
(t/plus (t/date-time 1986 10 14) (t/months 1) (t/weeks 3))
=> #<DateTime 1986-12-05T00:00:00.000Z>
【讨论】:
user> (import '[java.util Calendar])
;=> java.util.Calendar
user> (defn days-later [n]
(let [today (Calendar/getInstance)]
(doto today
(.add Calendar/DATE n)
.toString)))
#'user/days-later
user> (println "Tomorrow: " (days-later 1))
;=> Tomorrow: #inst "2014-11-26T15:36:31.901+09:00"
;=> nil
user> (println "7 Days from now: " (days-later 7))
;=> 7 Days from now: #inst "2014-12-02T15:36:44.785+09:00"
;=> nil
【讨论】: