¿Cómo uso la biblioteca java.time en clojure? Ni siquiera puedo importarlo a mi respuesta.

user=> *clojure-version*
{:major 1, :minor 10, :incremental 0, :qualifier nil}
user=> (java.util.Date.)
#object[java.util.Date 0x5c22a205 "Tue Oct 08 22:10:21 PDT 2019"]

user=> (java.time.Instant.)
Syntax error (IllegalArgumentException) compiling new at (REPL:1:1).
No matching ctor found for class java.time.Instant

Está en los documentos de Java y tengo Java 13 instalado. https: // docs.oracle.com/en/java/javase/13/docs/api/java.base/java/time/Instant.html

Hay https://github.com/dm3/clojure.java-time que afirma para usarlo, es genial si intentara usarlo en un proyecto que podría hacer eso. Pero solo quiero importarlo y jugar con una fecha en la respuesta. Como se hace

2
nackjicholson 9 oct. 2019 a las 08:09

1 respuesta

La mejor respuesta

En Clojure, la sintaxis (some.class.Name.) con "." después del nombre de la clase significa llamar a un constructor para esa clase. Si observa la página de documentación de Java para la clase java.time. Al instante, notará que no tiene constructores: https://docs.oracle.com/javase/8/docs/api/java/time/Instant.html

Hay un método llamado now que devuelve un objeto de tipo Instant, al que puedes llamar con esta sintaxis en Clojure:

user=> (java.time.Instant/now)
#object[java.time.Instant 0x599f571f "2019-10-09T05:18:06.192393Z"]
3
andy_fingerhut 9 oct. 2019 a las 05:21