Get yesterday date in Clojure

I need to get yesterday's date (not based on the user, but relative to the server) in the format YYYY-MM-DD.

What is the best way to achieve this in Clojure?

+4
source share
3 answers

With the Java 8 Time API:

(import (java.time LocalDate)
        (java.time.format DateTimeFormatter))

(def formatter (DateTimeFormatter/ofPattern "yyyy-MM-dd"))

(def yesterday (.minusDays (LocalDate/now) 1))

(.format formatter yesterday)
;; => "2017-04-05"

Or with the Java 8 Time API Clojure wrapper: clojure.java-time

(require '[java-time :as t])

(def yesterday (t/minus (t/local-date)
                        (t/days 1)))

(t/format "yyyy-MM-dd" yesterday)
;; => "2017-04-05"
+5
source

clj-time

(t/minus (t/now) (t/days 1))
+4
source

clj.

(require [clj-time.core :as t]
         [clj-time.format :as f])

. defs.

;;To Create Yesterday date    
(def yesterday 
     (t/minus (t/now) (t/days 1)))

;; To format as YYYY-MM-DD
(def custom-formatter (f/formatter "yyyy-MM-dd"))
(def output-time 
     (f/unparse custom-formatter yesterday))

:

(defn yesterday []
   (let [yesterday-date (t/minus (t/now) (t/days 1))
         custom-formatter (f/formatter "yyyy-MM-dd")]
      (f/unparse custom-formatter yesterday-date)))

(yesterday).

clj-time .

+3

Source: https://habr.com/ru/post/1674188/


All Articles