我需要将两个 unix 时间戳传递到查询中以拉回两个日期之间的数据。
如果脚本在今天(9 月 17 日)运行并且需要获取前一天的数据,则 unix 时间戳需要为 16 日 00:00:00 到 17 日 00:00:00。
这些时间戳需要自动存储在变量 dateFrom 和 dateTo 中,以便可以将它们传递到查询中。
提前感谢您的帮助。
您可以使用clj-time:
(require '(clj-time [core :as time] [coerce :as tc]))
;; not timezone-aware
(time/today)
;= #<LocalDate 2013-09-17>
;; UTC
(time/today-at-midnight)
;= #<DateMidnight 2013-09-17T00:00:00.000Z>
;; timestamp at midnight
(tc/to-long (time/today))
;= 1379376000000
(tc/minus (time/today-at-midnight) (time/days 1))
;= #<DateMidnight 2013-09-16T00:00:00.000Z>
等等。
如果您需要转换为java.sql.Timestamp
而不是long
,则clj-time.coerce/to-sql-time
可以这样做( s在 Clojure 1.5.1java.sql.Timestamp
中使用文字打印):#inst
(tc/to-sql-time (time/today))
;= #inst "2013-09-17T00:00:00.000000000-00:00"