1

我需要将两个 unix 时间戳传递到查询中以拉回两个日期之间的数据。

如果脚本在今天(9 月 17 日)运行并且需要获取前一天的数据,则 unix 时间戳需要为 16 日 00:00:00 到 17 日 00:00:00。

这些时间戳需要自动存储在变量 dateFrom 和 dateTo 中,以便可以将它们传递到查询中。

提前感谢您的帮助。

4

1 回答 1

2

您可以使用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"
于 2013-09-17T17:29:42.083 回答