如何在clojure中转换即时时间

时间:2016-09-09 23:57:44

标签: clojure clojurescript

我有一个即兴的时间在" 2016-08-03T18:45:00.000-00:00"。我想将它转换为仅日期(" 2016-08-03")。我该怎么做。

我的实际日期格式为" 2016-08-03T18:45:00Z"。我把它转换为即时使用(c /至今(f / parse" 2016-08-03T18:45:00Z"))。如何只获得日期?

谢谢

2 个答案:

答案 0 :(得分:2)

clj-time现在已弃用,新项目应使用java-time:

(:require [java-time :as jt]))

(defn format-date
  "Format a Java instant"
   [date]
  (let [formatter         (jt/format "dd-MM-yyyy HH:mm")
        instant-with-zone (.atZone date (jt/zone-id))]
    (jt/format formatter instant-with-zone)))

请注意,(jt / zone-id)返回当前服务器区域,因此,如果要使用静态分区日期,则必须使用(jt / zone-id“ America / Mexico_City”)。

答案 1 :(得分:1)

如果您只想获取日期和时间字符串的日期部分:

(require '[clojure.string :as str])

(def date-str "2016-08-03T18:45:00.000-00:00")
(first (str/split date-str #"T"))
;; => "2016-08-03"