【发布时间】:2014-07-18 02:49:18
【问题描述】:
我正在寻找在 OpenRefine 中将日期转换为纪元时间的公式。我知道 GREL 语言不支持这一点,但我想知道 clojure 或 jython 是否支持,如果支持如何?
我根本不熟悉这些语言。
目前我正在使用this service 的 API 调用,但这是一个包含大量数据集的漫长过程。
谢谢
【问题讨论】:
标签: clojure jython epoch openrefine
我正在寻找在 OpenRefine 中将日期转换为纪元时间的公式。我知道 GREL 语言不支持这一点,但我想知道 clojure 或 jython 是否支持,如果支持如何?
我根本不熟悉这些语言。
目前我正在使用this service 的 API 调用,但这是一个包含大量数据集的漫长过程。
谢谢
【问题讨论】:
标签: clojure jython epoch openrefine
为您想要的时间创建一个日期对象(默认为现在),然后在其上调用 .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
【讨论】:
SimpleDateFormat,谢谢
(.getTime value) 在 OpenRefine 中为我工作。
clj-time (JodaTime) 更适合日期时间操作:
(require '[clj-time.core :as cljt])
(require '[clj-time.coerce :as cljc])
(cljc/to-long (cljt/now))
【讨论】:
clj-time.coerce 甚至存在。
对于 Python(包括 Jython 实现),您可以使用 time 模块:
import time
print(time.mktime(time.strptime('2012-02-12 12:34:56', '%Y-%m-%d %H:%M:%S')))
【讨论】:
所以我从OpenRefine mailing list 得到了解决方案。我一直在将字符串转换为日期并使用
value.toDate('dd-MM-yy','dd-MMM-yy').toString('dd-MM-yyyy')
【讨论】:
我通过对日期列执行转换、将语言设置为 Clojure 并使用以下命令在 OpenRefine 中得到了这个工作:
(.getTime value)
与@arthur-ulfeldt 的回答非常相似,但想澄清一些专门针对 OpenRefine 的问题。
【讨论】: