Datetime 在Clojure中,如何输出这样的日期';2013年1月15日星期二21:47:38格林尼治标准时间;?

Datetime 在Clojure中,如何输出这样的日期';2013年1月15日星期二21:47:38格林尼治标准时间;?,datetime,clojure,jodatime,Datetime,Clojure,Jodatime,此日期格式在中使用 这是到目前为止我的代码 (ns cookie-handler (:require[clj-time.format :as f]) (:import (org.joda.time DateTimeZone))) (def custom-formatter2 (f/formatter "EEE, dd-MMM-yyyy HH:mm:ss zzz" (DateTimeZone/forID "Etc/GMT"))) 我在repl中调用它 (f/unparse cus

此日期格式在中使用

这是到目前为止我的代码

(ns cookie-handler
  (:require[clj-time.format :as f])
  (:import (org.joda.time DateTimeZone)))

(def custom-formatter2 
  (f/formatter "EEE, dd-MMM-yyyy HH:mm:ss zzz" (DateTimeZone/forID "Etc/GMT")))
我在repl中调用它

(f/unparse custom-formatter2 (c/to-date-time  (.. (Calendar/getInstance) (getTime) )))
这就是我得到的:“周四,2015年4月23日16:20:22+00:00”


如何初始化格式化程序,使其输出日期字符串,如“Thu,23-Apr-2015 16:20:22 GMT”

此问题的java版本位于

如果您只希望在格式化日期字符串的末尾有GMT,则可以将这些字符添加到格式化字符串的末尾

(def custom1 (f/formatter-local "EEE, dd-MMM-yyyy HH:mm:ss 'GMT'"))
(def formatted-date-1 (f/unparse custom1 (t/now)))
“周四,2015年4月23日19:12:58 GMT”

如果确实需要GMT后跟偏移量,同样的想法也适用

(def custom2 (f/formatter-local "EEE, dd-MMM-yyyy HH:mm:ss 'GMT'z"))
(def today (t/to-time-zone (t/now) (t/time-zone-for-offset -6)))
(def formatted-date-2 (f/unparse custom-formatter today))
“Thu,23-Apr-2015 13:12:58 GMT-06:00”

我在一个需要输出符合HTTP规范的时间戳的示例中使用了以下内容:

(def ^:private time-format (f/formatter "EEE, dd MMM yyyy HH:mm:ss"))

(defn- time->str
  [time]
  (str (f/unparse time-format time) " GMT"))
您可能可以将
GMT
包含在G_A建议的格式字符串中,但我还没有尝试过


不过,我确实认为使用而不是很重要,这样您的本地时间戳就可以在转换为字符串之前转换为UTC。

您的问题是什么?我认为他的问题在标题中,但如果它也在正文中,则会很有帮助。