サーチ…
前書き
このドキュメントでは、クロージャーで日付と時刻を操作する方法について説明しています。
これをアプリケーションで使用するには、project.cljファイルに移動し、依存関係セクションに[clj-time "<version_number>"]を含めます。
ジョーダの時間を作る
(clj-time/date-time 2017 1 20)
あなたに2017年1月20日00:00:00のJoda時間を与えます。
時間、分、秒は、次のように指定することもできます。
(clj-time/date-time year month date hour minute second millisecond)
日の月の取得年の時間時からの秒の秒
(require '[clj-time.core :as t])
(def example-time (t/date-time 2016 12 5 4 3 27 456))
(t/year example-time) ;; 2016
(t/month example-time) ;; 12
(t/day example-time) ;; 5
(t/hour example-time) ;; 4
(t/minute example-time) ;; 3
(t/second example-time) ;; 27
2つの日付時刻の比較
(require '[clj-time.core :as t])
(def date1 (t/date-time 2016 12 5))
(def date2 (t/date-time 2016 12 6))
(t/equal? date1 date2) ;; false
(t/equal? date1 date1) ;; true
(t/before? date1 date2) ;; true
(t/before? date2 date1) ;; false
(t/after? date1 date2) ;; false
(t/after? date2 date1) ;; true
時間が一定時間内かどうかの確認
この関数は、指定された時間が所定の時間間隔内にあるかどうかを示します。
(require '[clj-time.core :as t])
(def date1 (t/date-time 2016 11 5))
(def date2 (t/date-time 2016 12 5))
(def test-date1 (t/date-time 2016 12 20))
(def test-date2 (t/date-time 2016 11 15))
(t/within? (t/interval date1 date2) test-date1) ;; false
(t/within? (t/interval date1 date2) test-date2) ;; true
interval関数は排他的です。つまり、区間内の関数の2番目の引数は含まれません。例として:
(t/within? (t/interval date1 date2) date2) ;; false
(t/within? (t/interval date1 date2) date1) ;; true
他の時間タイプからのjoda日付 - 時間の追加
clj-time.coerceライブラリは、他の日付時刻形式をjoda時刻形式(clj-time.core / date-time)に変換するのに役立ちます。その他のフォーマットには、 Java long format、 String 、 Date 、 SQL Dateがあります。
他の時刻形式から時間を変換するには、ライブラリを含め、from関数を使用します。
(require '[clj-time.coerce :as c])
(def string-time "1990-01-29")
(def epoch-time 633571200)
(def long-time 633551400)
(c/from-string string-time) ;; #<DateTime 1990-01-29T00:00:00.000Z>
(c/from-epoch epoch-time) ;; #<DateTime 1990-01-29T00:00:00.000Z>
(c/from-long 633551400) ;; #<DateTime 1990-01-29T00:00:00.000Z>
他の日時に日時を追加する
cljs-timeは、日時を他の日時に加算/減算するオプションを提供します。減算された日付時間は、日、月、年、時間などの形式でなければなりません。
(require '[clj-time.core :as t])
(def example-date (t/date-time 2016 1 1)) ;; #<DateTime 2016-01-01T00:00:00.000Z>
;; Addition
(t/plus example-date (t/months 1)) ;; #<DateTime 2016-02-01T00:00:00.000Z>
(t/plus example-date (t/years 1)) ;; #<DateTime 2017-01-01T00:00:00.000Z>
;; Subtraction
(t/minus example-date (t/days 1)) ;; #<DateTime 2015-12-31T00:00:00.000Z>
(t/minus example-date (t/hours 12)) ;; #<DateTime 2015-12-31T12:00:00.000Z>
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow