使用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-zone
和to-time-zone
,但似乎无法找到正确的函数和参数组合。
答案 0 :(得分: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"