Clojure 我怎样才能“;解列”;特定时区的日期?

Clojure 我怎样才能“;解列”;特定时区的日期?,clojure,clj-time,Clojure,Clj Time,使用clj time,我可以通过执行以下操作来解析日期和时间 (def timestamp (format/parse (formatters :date-time-no-ms) "2013-06-03T23:00:00-0500")) ;=> #<DateTime 2013-06-04T04:00:00.000Z> 这是UTC时区内该时刻的年、月和日。如何获得相对于另一时区的未解析版本的DateTime?例如,对于上

使用clj time,我可以通过执行以下操作来解析日期和时间

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

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

您需要使用
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"
(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"