Я рассмотрел следующий вопрос: How to add days to current date in clojure.Как добавить дни к дате в Clojure
Однако я очень новичок в Clojure, и я застрял в следующем сценарии. Я получаю временную метку в строчном формате. Поэтому я разборе его с помощью следующих действий:
(.parse (java.text.SimpleDateFormat. "yyyy-MM-dd") date)
Который дает мне результат, который выглядит следующим образом:
#inst "2015-02-13T00:20:00.000-00:00"
Как добавить сказать 90 дней до этого, а затем преобразовать его обратно в формат строки ? Я попробовал это на основе приведенной выше ссылке:
(java.util.Date. (+ (* 7 86400 1000)
(.parse (java.text.SimpleDateFormat. "yyyy-MM-dd") date)))
Который дал мне следующую ошибку:
ClassCastException java.util.Date cannot be cast to java.lang.Number clojure.lang.Numbers.add
Лучше использовать [Joda Time] (http://www.joda.org/ joda-time /) вместо стандартных библиотек даты и времени Java. Существует также оболочка Clojure, [clj-time] (https://github.com/clj-time/clj-time). См. Эту статью [IBM Developer Works article] (http://www.ibm.com/developerworks/java/library/j-jodatime/index.html#N100BA) для получения более подробной информации о том, почему Joda Time является лучшим вариантом. –