前一天的Clojure Unix时间戳

时间:2013-10-01 12:29:34

标签: unix datetime clojure

(defn todaydate [& props]
(let [
tester(str "")
tester (let [today (Date.)]
   (.getTime today))

上面的代码片段返回当天的unix时间戳。我希望能够使用tester获取前一天的unix时间戳。

我无法使用clj-time库来解决此问题

1 个答案:

答案 0 :(得分:2)

您需要使用java.util.Calendar,添加负数一天,然后使用getTimeInMillis除以1000来获取时间戳。

以下内容将为您提供昨天午夜的unix时间戳。

(let [yesterday (doto (GregorianCalendar. (TimeZone/getTimeZone "UTC"))
                  (.set Calendar/HOUR_OF_DAY, 0)
                  (.set Calendar/MINUTE 0)
                  (.set Calendar/SECOND 0)
                  (.set Calendar/MILLISECOND 0)
                  (.add Calendar/DAY_OF_YEAR -1))]
  (/ (.getTimeInMillis yesterday) 1000))

注意:请注意您使用的时区。

另外,如果你只是需要快速的东西,你可以从你的价值中减去一天中的秒数。