Clojureでorg.joda.timeを扱うclj-time


seancorfield/clj-time – GitHub

clojureから日付関係を扱う場合、java.util.Dateを直接使う事が多いかったんですが、何時間前とか今月の末日を求める時に不便だったので何かライブラリが無いか探してみるとorg.joda.timeをclojureから扱う「clj-time」というのが使いやすかったので、載せておきます。

どんだけ楽なのかは上記のサイトを見ればもうほとんど書いてあるのですが、一部載せておきます。

広告
;日付指定でDateオブジェクトを取得
(date-time 1986 10 14)
 
;1ヶ月後の日付を取得
(plus (now) (months 1))
 
;1ヶ月前の日付を取得
(minus (now) (months 1))
 
;org.joda.time.DateTimeからjava.util.Dateへ変換
(.toDate (now))

この他にも便利な関数が沢山あるので、日付計算を多用する場合には是非使ってみると便利だと思います。

また、clj-time.coreですが、useするとclj-time.core/extendとclojure.core/extendが被ってしまい、警告が出るので、asで別名を付けるかonlyで必要なものだけ読み込んだ方が良いかもしれません。

追記:2011.11.06
githubのURLが間違っていたとのコメントを頂いたので修正しました。

関連記事