2013-09-17 3 views
0

Мне нужно передать две временные метки unix в запрос, чтобы отменить данные между двумя датами.Unix timestamp in Clojure

Если сценарий запускается сегодня, 17 сентября, и ему необходимо получить данные за предыдущий день, отметки времени unix должны быть 00:00:00 с 16:00 до 00:00:00 17-го ,

Эти метки времени должны быть автоматически сохранены в переменных dateFrom и dateTo, чтобы они могли быть переданы в запрос.

Заранее благодарим за любую помощь.

ответ

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 для этого (java.sql.Timestamp s печатаются с использованием #inst литералов в Clojure 1.5.1):

(tc/to-sql-time (time/today)) 
;= #inst "2013-09-17T00:00:00.000000000-00:00"