2013-06-02 5 views
7

Использование CLJ времени, я могу разобрать дату и время, делаяКак я могу «отследить» дату в определенном часовом поясе?

(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. Как я могу получить unparsed версию DateTime относительно другого часового пояса? Например, в приведенном выше примере я хочу указать часовой пояс UTC-5 и получить строку «2013-06-03». Я играл с from-time-zone и to-time-zone, но не может найти правильную комбинацию функций и аргументов.

ответ

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" 

 Смежные вопросы

  • Нет связанных вопросов^_^