📝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)