Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在clojure中向当前日期添加天数_Clojure_Functional Programming - Fatal编程技术网

如何在clojure中向当前日期添加天数

如何在clojure中向当前日期添加天数,clojure,functional-programming,Clojure,Functional Programming,在clojure中,我想在当前日期的基础上再加上几天,有谁能给我指点一下吗。我得到的当前日期如下,现在让我们假设我想增加7天,我如何才能得到一个新的日期 (.format (java.text.SimpleDateFormat. "MM/dd/yyyy") (java.util.Date.)) 这将有助于: (java.util.Date. (+ (* 7 86400 1000) (.getTime (java.util.Date.))) 对于当前时间,我更喜欢使用System/curren

在clojure中,我想在当前日期的基础上再加上几天,有谁能给我指点一下吗。我得到的当前日期如下,现在让我们假设我想增加7天,我如何才能得到一个新的日期

(.format (java.text.SimpleDateFormat. "MM/dd/yyyy") (java.util.Date.))
这将有助于:

(java.util.Date. (+ (* 7 86400 1000) (.getTime (java.util.Date.)))
对于当前时间,我更喜欢使用
System/currentTimeMillis

(java.util.Date.(+78640000)(System/currentTimeMillis))

或者您可以使用
cljtime
,这是一个更好的处理时间的api(它是一个围绕Joda时间的包装器)。从自述文件:

(t/plus(t/date time 1986 1014)(t/months 1)(t/weeks 3))


这是错误的!你不应该假设一天总有86400秒。如果您正在跨越DST的边界,您将获得额外的一小时或失去额外的一小时。例如:(.format(java.text.SimpleDateFormat.yyyy/MM/dd HH:MM z)(java.util.Date.(+(*78640000)(.getTime(.parse(java.text.SimpleDateFormat.yyyy/MM/dd HH:MM z)))生成“2015/03/05 00:00 PDT”;“GMT-08:00”,不是所需的“2015/03/12 00:00 GMT-0:8:00”。
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