Analisando uma data a partir de uma string

Clojure:
Analisando uma data a partir de uma string

Como Fazer:

Clojure, sendo uma linguagem JVM, permite que você use diretamente as bibliotecas de data e hora do Java. Vamos começar com a interoperabilidade Java incorporada e, depois, explorar como utilizar uma biblioteca de terceiros popular, clj-time, para soluções mais idiomáticas em Clojure.

Usando Interoperabilidade Java

Clojure pode aproveitar diretamente java.time.LocalDate do Java para analisar datas a partir de strings:

(require '[clojure.java.io :as io])

; Analisando uma data usando interoperabilidade Java
(let [date-str "2023-04-01"
      date (java.time.LocalDate/parse date-str)]
  (println date))
; Saída: 2023-04-01

Usando clj-time

Uma biblioteca mais idiomática em Clojure para lidar com datas e horas é clj-time. Ela encapsula o Joda-Time, uma biblioteca abrangente para operações de data e hora. Primeiro, você precisará adicionar clj-time às dependências do seu projeto. Veja como você analisa uma string de data usando clj-time:

; Certifique-se de adicionar [clj-time "0.15.2"] ao seu project.clj em :dependencies

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

; Definindo um formatador
(let [formatter (fmt/formatter "yyyy-MM-dd")
      date-str "2023-04-01"
      parsed-date (fmt/parse formatter date-str)]
  (println parsed-date))
; Saída: #object[org.joda.time.DateTime 0x76eccb5d "2023-04-01T00:00:00.000Z"]

Estes exemplos demonstram análise básica de data. Ambos os métodos são úteis, mas clj-time pode proporcionar uma abordagem mais centrada em Clojure com funcionalidades adicionais para requisitos complexos.