Convirtiendo una fecha en una cadena de texto

Clojure:
Convirtiendo una fecha en una cadena de texto

Cómo hacerlo:

Clojure, por ser un dialecto de Lisp y correr en la JVM, utiliza las clases de Java para manejar fechas. Aquí hay un ejemplo de cómo convertir una fecha a una cadena:

(import java.text.SimpleDateFormat)
(import java.util.Date)

(defn convertir-fecha-a-cadena [fecha]
  (let [formato-fecha "dd-MM-yyyy"]
    (-> (SimpleDateFormat. formato-fecha)
        (.format fecha))))

(println (convertir-fecha-a-cadena (Date.)))

Salida de ejemplo:

"23-03-2023"

Profundidad:

Históricamente, manejar fechas y conversiones no fue tan directo en Java (y por ende en Clojure). La API de fecha tiempo en Java 8 mejoró la situación, pero Clojure mantiene la compatibilidad con versiones anteriores de Java, por lo que aún se ven estos métodos anticuados en uso.

Alternativas modernas usan la biblioteca clj-time, un envoltorio de la API Joda-Time, o la API java.time de Java 8. clj-time proporciona una interfaz más idiomática y funciones ricas para Clojure, mientras que java.time ofrece inmutabilidad y manejo de zonas horarias más sofisticado.

Detalles de implementación incluyen el manejo de zonas horarias y la configuración del idioma.

Ejemplo usando java.time:

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

(defn convertir-fecha-a-cadena-java-time [fecha]
  (-> (DateTimeFormatter/ofPattern "dd-MM-yyyy")
      (.format fecha)))

(println (convertir-fecha-a-cadena-java-time (ZonedDateTime/now)))

Ver También: