【问题标题】:Converting date to epoch time in clojure or jython在 clojure 或 jython 中将日期转换为纪元时间
【发布时间】:2014-07-18 02:49:18
【问题描述】:

我正在寻找在 OpenRefine 中将日期转换为纪元时间的公式。我知道 GREL 语言不支持这一点,但我想知道 clojure 或 jython 是否支持,如果支持如何?

我根本不熟悉这些语言。

目前我正在使用this service 的 API 调用,但这是一个包含大量数据集的漫长过程。

谢谢

【问题讨论】:

    标签: clojure jython epoch openrefine


    【解决方案1】:

    为您想要的时间创建一个日期对象(默认为现在),然后在其上调用 .getTime:

    user> (.getTime (java.util.Date.))                                         
    1361830209902
    

    或者如果您想要特定日期的纪元时间:

    user> (import java.text.SimpleDateFormat) 
    user> (.getTime (.parse (SimpleDateFormat. "yyyy MM dd HH mm ss") "2013 02 25 04 06 59"))
    1361794019000 
    

    【讨论】:

    • 好的,我会看看如何为 OpenRefine 安装 SimpleDateFormat,谢谢
    • 将语言设置为 Clojure 进行转换并使用 (.getTime value) 在 OpenRefine 中为我工作。
    【解决方案2】:

    clj-time (JodaTime) 更适合日期时间操作:

    (require '[clj-time.core :as cljt])
    (require '[clj-time.coerce :as cljc])
    
    (cljc/to-long (cljt/now))
    

    【讨论】:

    • 我不知道clj-time.coerce 甚至存在。
    【解决方案3】:

    对于 Python(包括 Jython 实现),您可以使用 time 模块:

    import time
    print(time.mktime(time.strptime('2012-02-12 12:34:56', '%Y-%m-%d %H:%M:%S')))
    

    【讨论】:

      【解决方案4】:

      所以我从OpenRefine mailing list 得到了解决方案。我一直在将字符串转换为日期并使用

      value.toDate('dd-MM-yy','dd-MMM-yy').toString('dd-MM-yyyy')
      

      【讨论】:

        【解决方案5】:

        我通过对日期列执行转换、将语言设置为 Clojure 并使用以下命令在 OpenRefine 中得到了这个工作:

        (.getTime value)
        

        与@arthur-ulfeldt 的回答非常相似,但想澄清一些专门针对 OpenRefine 的问题。

        【讨论】:

          猜你喜欢
          • 2018-04-24
          • 2011-12-06
          • 2012-09-06
          • 2012-11-08
          • 2019-01-15
          • 1970-01-01
          • 1970-01-01
          • 2018-10-01
          • 2016-09-15
          相关资源
          最近更新 更多