A Clojure(Script) library which provides the java.time api through kebab-case-named function vars. Using this API, you can write non-interop code using everything from java.time and which runs in both Clojure and ClojureScript.
See my talk at Clojure/North 2019 for more background.
time-literals is a Clojure(Script) library which provides tagged literals for objects from jsr-310 domain
This library sits atop
platforms. Writing code that uses those libraries directly is harder than interop normally is because:
- To call the 'static' methods from Clojurescript you need to use the dot-special-form which is not idiomatic
- The underlying js library has changed the name of the getter methods in java.time to remove the 'get' part of the name. There are ways to get around that on a case by case basis, but this library handles it for you.
How it works
For every class in java.time, there is a clojure namespace.
For example, corresponding to
java.time.LocalDate, there is a namespace
In that and every other namespace, there is one var per public method/field in the corresponding class.
For example, for the method
java.time.LocalDate/parse, there is a corresponding function
Get it from Clojars
In .cljc file
(ns my.cljc (:require [cljc.java-time.local-date :as ld]) (ld/parse "2019-01-01")
Keep up to date with java.time
New methods were added in Java 9 - these are not included in this library
Be aware that the Implementation is not 100%. It's probably 99% though and anything you find missing can be added via pull request to js-joda
Copyright © 2019 Widd Industries
Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.