文字列から日付をパースする

Clojure:
文字列から日付をパースする

方法:

ClojureはJVM言語であるため、Javaの日付と時間のライブラリを直接使用できます。まず、組み込みのJava相互運用を始めにして、その後、よりイディオマティックなClojureソリューションに対して人気のサードパーティライブラリ、clj-timeの利用方法を探ります。

Java相互運用を使用する

Clojureは、文字列から日付を解析するためにJavaのjava.time.LocalDateを直接活用できます:

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

; Java相互運用を使用して日付を解析する
(let [date-str "2023-04-01"
      date (java.time.LocalDate/parse date-str)]
  (println date))
; 出力: 2023-04-01

clj-timeを使用する

日付と時間を扱うためのよりイディオマティックなClojureライブラリであるclj-timeがあります。これは、日付と時間の操作のための包括的なライブラリであるJoda-Timeをラップしています。まず、clj-timeをプロジェクトの依存関係に追加する必要があります。ここでは、clj-timeを使用して日付文字列を解析する方法を示します:

; プロジェクトのproject.cljの :dependencies に[clj-time "0.15.2"]を追加することを確認してください

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

; フォーマッタを定義する
(let [formatter (fmt/formatter "yyyy-MM-dd")
      date-str "2023-04-01"
      parsed-date (fmt/parse formatter date-str)]
  (println parsed-date))
; 出力: #object[org.joda.time.DateTime 0x76eccb5d "2023-04-01T00:00:00.000Z"]

これらの例は、基本的な日付解析を示しています。両方の方法は有用ですが、clj-timeはよりClojure中心のアプローチを提供でき、複雑な要件に対する追加機能を提供することができます。