Convertendo uma data em uma string

Clojure:
Convertendo uma data em uma string

Como fazer:

Conversão básica de data para string:

(require '[java.time.format :as fmt])
(require '[java.time :as time])

(let [hoje (time/LocalDate/now)
      formato (fmt/DateTimeFormatter/ofPattern "dd/MM/yyyy")]
  (.format hoje formato))

Saída:

"31/03/2023"

Usando clj-time para mais flexibilidade:

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

(let [hoje (time/LocalDate/now)
      formatador (f/formatter "dd-MM-yyyy")]
  (f/unparse formatador hoje))

Saída:

"31-03-2023"

Aprofundamento

Na época do Java 7 e anterior, a manipulação de datas em Clojure era um tanto verbosa, pois dependíamos diretamente da API java.util.Date. Com a chegada do Java 8, a API de data/hora foi completamente reformulada com java.time, a qual Clojure abraçou para oferecer uma experiência mais suave.

Alternativas, como a biblioteca clj-time, são baseadas em Joda-Time e oferecem uma API ainda mais rica e idiomatic para Clojure. Por outro lado, java.time é suficiente para muitos casos de uso e não requer dependências adicionais.

Detalhes de implementação como fuso horário (timezone) e localidade (locale) podem afetar o resultado da conversão de datas. Por isso, é importante definir estes parâmetros se você precisa de consistência através de diferentes ambientes ou localizações.

Veja também