Simple types / Date and time

; Clojure has no date type of its own — java.time is used through interop
(import '[java.time LocalDate LocalDateTime ZonedDateTime ZoneId])

(def today (LocalDate/now))
(def now (LocalDateTime/now))
(def utc-now (ZonedDateTime/now (ZoneId/of "UTC")))
(def wake-now (ZonedDateTime/now (ZoneId/of "Pacific/Wake")))

; the moment differs on every run, so we print its shape, not its value
(println "today is a" (.getName (class today)))
(println "today as text is" (count (str today)) "chars, like 2026-08-16")
(println "utc-now zone is" (str (.getZone utc-now)))
(println "wake-now zone is" (str (.getZone wake-now)))
(println "now is past midnight:" (.isAfter now (.atStartOfDay today)))