📝Clojure Date/Time/Timestamp

📝Clojure Date/Time/Timestamp

Clojureにおける時間の扱いについてまとめ.

up: 📂Clojure Core Languages tag: 🏷Date/Time/Timestamp

clojure.instant #

文字列を読み取る関数がいくつか定義されている.

https://clojuredocs.org/clojure.instant

  • parse-timestamp: RFC3339-likeフォーマットのparse.
  • read-instant-xxx

clj-time #

https://github.com/clj-time/clj-time

おそらくデファクトスタンダードなClojure のライブラリ.

バックエンドのJoda Time Javaライブラリのラッパー.

しかし注意書きとして Java8以降はJava Timeをラップしている clojure.java-time を使ったほうがいいとのこと.

JavaではJava8よりJava Timeというパッケージが標準で使えるようになり, それ以前に使われていた Joda Timeを置き換えるようになった.

そのためclojureの方針としてもJoda TimeではなくJava Timeをつかうのがいい.

clojure.java-time #

A Clojure wrapper for Java 8 Date-Time API.

https://github.com/dm3/clojure.java-time

Java Libraries Interop #

Javaの関数を呼び出してもいい.

SimpleDataFormatを使う例.

(import '[java.text SimpleDateFormat])

(def twitter-timestamp "Sat Mar 12 20:34:57 +0000 2022")
(def twitter-format "EEE MMM dd HH:mm:ss Z yyyy")

(def locale java.util.Locale/US)
(def sdf (SimpleDateFormat. twitter-format locale))

(.setTimeZone sdf (java.util.TimeZone/getTimeZone "Asia/Tokyo"))
(.parse sdf twitter-timestamp)

ref: 📝Clojure Java Interop


Tags