我想知道当前的时间戳是什么。到目前为止,我能做的最好的事情就是定义我自己的函数来做这件事:
(int (/ (.getTime (java.util.Date.)) 1000))
是否有使用clojure获取Unix时间戳的标准函数?
发布于 2013-07-03 01:50:32
几乎所有基于JVM的时间戳机制都以自纪元以来的毫秒来度量时间-所以没有任何标准**可以提供自纪元以来的秒数。
您的函数可以稍微简化为:
(quot (System/currentTimeMillis) 1000)
** Joda可能有类似这样的东西,但为此引入第三方库似乎有点过头了。
发布于 2013-07-04 02:19:49
我使用clj-time,这是用于处理时间和日期(包装Joda-Time)的标准Clojure库。是的,对于简单的需求,它是一个额外的依赖,如果你真的只想要当前的时间戳,那么它可能会被夸大;即使这样,它也只是一个很好的便利,几乎不需要任何成本。如果您最终确实需要额外的与时间相关的功能,那么它将提供所有基本功能的出色实现。
至于代码,这里是当前版本的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.))
发布于 2015-04-15 10:17:59
(defn unix-time-real
"Taken from
System/currentTimeMillis."
[]
(/ (System/currentTimeMillis) 1000))
https://stackoverflow.com/questions/17432032
复制相似问题