2013-06-02 39 views
7

Sử dụng CLJ thời gian, tôi có thể phân tích một ngày và thời gian bằng cách làmTôi làm cách nào để “tách rời” một ngày trong một múi giờ cụ thể?

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

tôi có thể chuyển đổi này lại thành một chuỗi bằng cách làm

(unparse (formatters :year-month-day) timestamp) 
;=> "2013-06-04" 

Đây là năm, tháng và ngày thời điểm đó trong múi giờ UTC. Làm cách nào để có được phiên bản chưa được phân loại của DateTime liên quan đến múi giờ khác? Ví dụ, đối với ví dụ trên, tôi muốn xác định múi giờ UTC-5 và nhận một chuỗi “2013-06-03”. Tôi đã chơi xung quanh với from-time-zoneto-time-zone nhưng dường như không thể tìm thấy sự kết hợp đúng chức năng và đối số.

Trả lời

8

Bạn sẽ muốn sử dụng 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" 
Các vấn đề liên quan