在 Clojure 中,如何输出这样的日期 'Tue, 15-Jan-2013 21:47:38 GMT'?
In Clojure , how do you output a date like this 'Tue, 15-Jan-2013 21:47:38 GMT'?
此日期格式用于 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) )))
这就是我得到的:"Thu, 23-Apr-2015 16:20:22 +00:00"
如何初始化格式化程序,以便它输出像 "Thu, 23-Apr-2015 16:20:22 GMT"
这样的日期字符串
此问题的 java 版本位于 java date format - GMT 0700 (PDT)
如果您只想在格式化日期字符串的末尾添加 GMT,您可以将这些字符添加到格式字符串的末尾
(def custom1 (f/formatter-local "EEE, dd-MMM-yyyy HH:mm:ss 'GMT'"))
(def formatted-date-1 (f/unparse custom1 (t/now)))
"Thu, 23-Apr-2015 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 规范的时间戳的 library 中使用以下内容:
(def ^:private time-format (f/formatter "EEE, dd MMM yyyy HH:mm:ss"))
(defn- time->str
[time]
(str (f/unparse time-format time) " GMT"))
您可以像 G_A 建议的那样在格式字符串中包含 GMT
,但我还没有尝试过。
我确实认为使用 f/formatter
rather than f/formatter-local
很重要,这样您的本地时间戳在转换为字符串之前会先转换为 UTC。
此日期格式用于 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) )))
这就是我得到的:"Thu, 23-Apr-2015 16:20:22 +00:00"
如何初始化格式化程序,以便它输出像 "Thu, 23-Apr-2015 16:20:22 GMT"
这样的日期字符串此问题的 java 版本位于 java date format - GMT 0700 (PDT)
如果您只想在格式化日期字符串的末尾添加 GMT,您可以将这些字符添加到格式字符串的末尾
(def custom1 (f/formatter-local "EEE, dd-MMM-yyyy HH:mm:ss 'GMT'"))
(def formatted-date-1 (f/unparse custom1 (t/now)))
"Thu, 23-Apr-2015 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 规范的时间戳的 library 中使用以下内容:
(def ^:private time-format (f/formatter "EEE, dd MMM yyyy HH:mm:ss"))
(defn- time->str
[time]
(str (f/unparse time-format time) " GMT"))
您可以像 G_A 建议的那样在格式字符串中包含 GMT
,但我还没有尝试过。
我确实认为使用 f/formatter
rather than f/formatter-local
很重要,这样您的本地时间戳在转换为字符串之前会先转换为 UTC。