現在のタイムスタンプが何であるかを知りたいです。これまでのところ、これを行う独自の関数を定義することが最善です。
(int (/ (.getTime (java.util.Date.)) 1000))
clojure で Unix タイムスタンプを取得するための標準関数はありますか?
現在のタイムスタンプが何であるかを知りたいです。これまでのところ、これを行う独自の関数を定義することが最善です。
(int (/ (.getTime (java.util.Date.)) 1000))
clojure で Unix タイムスタンプを取得するための標準関数はありますか?
ほとんどすべての JVM ベースのタイムスタンプ メカニズムは、エポックからの時間をミリ秒単位で測定します。
関数は次のように少し単純化できます。
(quot (System/currentTimeMillis) 1000)
** Jodaはこのようなものを持っているかもしれませんが、サードパーティのライブラリを引き込むのはやり過ぎのようです。
時間と日付を処理するための標準の Clojure ライブラリであるclj-timeを使用します ( Joda -Timeをラップします)。はい、単純な必要性のための追加の依存関係であり、現在のタイムスタンプだけが本当に必要な場合はやり過ぎになる可能性があります。それでも、実質的に無料で便利です。最終的に追加の時間関連の機能が必要になった場合は、すべての基本機能が優れた実装で提供されます。
コードに関しては、現在のリリースの Leiningen 依存関係指定子は次のとおりです。
[clj-time "0.15.2"]
そして、現在のタイムスタンプを取得するためのスニペットは次のとおりです。
(require '[clj-time.core :as time]
'[clj-time.coerce :as tc])
;; milliseconds since Unix epoch
(tc/to-long (time/now))
;; also works, as it would with other JVM date and time classes
(tc/to-long (java.util.Date.))
(defn unix-time-real
"Taken from
System/currentTimeMillis."
[]
(/ (System/currentTimeMillis) 1000))