7

使用 clj-time,我可以解析日期和时间

(def timestamp (format/parse (formatters :date-time-no-ms)
                             "2013-06-03T23:00:00-0500"))
;=> #<DateTime 2013-06-04T04:00:00.000Z>

我可以通过这样做将它转换回字符串

(unparse (formatters :year-month-day) timestamp)
;=> "2013-06-04"

这是 UTC 时区内那个时刻的年、月和日。如何获得DateTime相对于另一个时区的未解析版本?例如,对于上面的示例,我想指定 UTC–5 时区并获取字符串“2013-06-03”。我玩过from-time-zoneto-time-zone但似乎找不到函数和参数的正确组合。

4

1 回答 1

8

你会想要使用clj-time.format/with-zone

(require '(clj-time [core :as time] [format :as timef]))

(timef/unparse (timef/with-zone (:date-time-no-ms timef/formatters)
                  (time/time-zone-for-id "America/Chicago"))
               (time/now))
;= "2013-06-02T15:20:03-05:00"
于 2013-06-02T20:21:28.917 回答