2016-09-29 3 views
1

здесь 15:51.unparse js Дата по местному времени строка через cljs-time

Ну, в UTF это 13:51. Я пытаюсь разобрать текущие местные часы с помощью библиотеки времени cljs.

Вот нелокального подход:

(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

По умолчанию cljs-time работает через goog.date.UtcDateTime, который возвращает UTC часы и минуты.

unparse-local и formatter-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.))) 

Это должно вернуть ваше местное время в часах.