2013-10-01 4 views
1
(defn todaydate [& props] 
(let [ 
tester(str "") 
tester (let [today (Date.)] 
    (.getTime today)) 

Кусок кода, приведенный выше, возвращает отметку времени unix для текущего дня. Я хочу иметь возможность использовать tester, чтобы получить временную метку unix за предыдущий день.Clojure Unix отметка времени для предыдущего дня

clj-time библиотека не доступна мне для использования, чтобы решить эту проблему

ответ

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)) 

Примечание: Будьте осторожны о часовом поясе вы используете.

Кроме того, если вам просто нужно что-то быстрое, вы можете просто вычесть количество секунд в день из значения, которое у вас есть.

Смежные вопросы