Analysera ett datum från en sträng

Clojure:
Analysera ett datum från en sträng

Hur:

Clojure, som är ett JVM-språk, tillåter dig att använda Java’s datum- och tidsbibliotek direkt. Låt oss börja med den inbyggda Java-interoperabiliteten och sedan utforska hur man använder ett populärt tredjepartsbibliotek, clj-time, för mer idiomatiska Clojure-lösningar.

Använda Java Interop

Clojure kan direkt dra nytta av Javas java.time.LocalDate för att tolka datum från strängar:

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

; Tolka ett datum med hjälp av Java interop
(let [date-str "2023-04-01"
      date (java.time.LocalDate/parse date-str)]
  (println date))
; Utdata: 2023-04-01

Använda clj-time

Ett mer idiomatiskt Clojure-bibliotek för att hantera datum och tider är clj-time. Det omsluter Joda-Time, ett omfattande bibliotek för datum- och tidsoperationer. Först behöver du lägga till clj-time till ditt projekts beroenden. Så här tolkar du en datumsträng med användning av clj-time:

; Se till att lägga till [clj-time "0.15.2"] till ditt project.clj under :dependencies

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

; Definiera en formatterare
(let [formatter (fmt/formatter "yyyy-MM-dd")
      date-str "2023-04-01"
      parsed-date (fmt/parse formatter date-str)]
  (println parsed-date))
; Utdata: #object[org.joda.time.DateTime 0x76eccb5d "2023-04-01T00:00:00.000Z"]

Dessa exempel demonstrerar grundläggande datumtolkning. Båda metoderna är användbara, men clj-time kan erbjuda en mer Clojure-centrerad metod med ytterligare funktionaliteter för komplexa krav.