unparse js通过cljs-time将日期转换为本地时间字符串

时间:2016-09-29 14:00:52

标签: datetime clojurescript

这是15:51。

嗯,在UTF中它的13:51。我试图在cljs-time库的帮助下解析当前的当地时间。

这是非本地方法:

(require [cljs-time.format :as tf]
         [cljs-time.coerce :as tc])

(tf/unparse (tf/formatter "HH") (tc/from-date (js/Date.)))
;; 13 

不幸的是,以下产生了相同的结果而不是所需的15:

(tf/unparse-local (tf/formatter-local "HH") (tc/from-date (js/Date.)))

有人知道,这里发生了什么?

1 个答案:

答案 0 :(得分:1)

默认情况下,cljs-time通过goog.date.UtcDateTime工作,返回UTC小时和分钟。

unparse-localformatter-local只是从格式字符串中删除时区字段。它们不会影响时区。

要使用本地(默认)时间goog.date.DateTime,您可以使用cljs-time.core/to-default-time-zone

(require '[cljs-time.core :as time]
         '[cljs-time.format :as fmt])

(tf/unparse (tf/formatter "HH") (time/to-default-time-zone (js/Date.)))

这应该以小时为单位返回当地时间。