7

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-zoneandをto-time-zoneいじってみましたが、関数と引数の適切な組み合わせが見つからないようです。

4

1 に答える 1

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"
于 2013-06-02T20:21:28.917 に答える