首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Clojure中获取Unix时间戳?

如何在Clojure中获取Unix时间戳?
EN

Stack Overflow用户
提问于 2013-07-03 01:30:15
回答 3查看 21.7K关注 0票数 35

我想知道当前的时间戳是什么。到目前为止,我能做的最好的事情就是定义我自己的函数来做这件事:

代码语言:javascript
复制
(int (/ (.getTime (java.util.Date.)) 1000))

是否有使用clojure获取Unix时间戳的标准函数?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-07-03 01:50:32

几乎所有基于JVM的时间戳机制都以自纪元以来的毫秒来度量时间-所以没有任何标准**可以提供自纪元以来的秒数。

您的函数可以稍微简化为:

代码语言:javascript
复制
(quot (System/currentTimeMillis) 1000)

** Joda可能有类似这样的东西,但为此引入第三方库似乎有点过头了。

票数 66
EN

Stack Overflow用户

发布于 2013-07-04 02:19:49

我使用clj-time,这是用于处理时间和日期(包装Joda-Time)的标准Clojure库。是的,对于简单的需求,它是一个额外的依赖,如果你真的只想要当前的时间戳,那么它可能会被夸大;即使这样,它也只是一个很好的便利,几乎不需要任何成本。如果您最终确实需要额外的与时间相关的功能,那么它将提供所有基本功能的出色实现。

至于代码,这里是当前版本的Leiningen依赖说明符:

代码语言:javascript
复制
[clj-time "0.15.2"]

下面是获取当前时间戳的代码片段:

代码语言:javascript
复制
(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.))
票数 18
EN

Stack Overflow用户

发布于 2015-04-15 10:17:59

代码语言:javascript
复制
(defn unix-time-real
  "Taken from
  System/currentTimeMillis."
  []
  (/ (System/currentTimeMillis) 1000))
票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17432032

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档