此日期格式用于HTTP Cookie Expires field。
这是我目前的代码
(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,2015年4月23日16:20:22 GMT”
答案 0 :(得分:2)
java date format - GMT 0700 (PDT)
存在此问题的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))
"星期四,2015年4月23日13:12:58 GMT-06:00"
答案 1 :(得分:0)
我在我的library中使用以下内容,需要输出符合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建议,但我还没有尝试过。
我确实认为使用f/formatter
而非f/formatter-local
非常重要,因此您的本地时间戳会在转换为字符串之前转换为UTC。