我这里有一个奇怪的问题。我正在从数据库中调用日期,并尝试显示格式为“2013-01-01”的 PostgreSQL 日期,以在我的网站上显示为“2013 年 1 月 1 日”
我有以下代码:
(ns mr.layouts
(:require
[clj-time.format :as ctf]))
(def to-mdy (ctf/formatter "MMMM d, yyyy"))
(defn coerce-mdy [sd]
(ctf/unparse to-mdy (ctf/parse sd)))
对数据库的调用如下所示:
(layouts/coerce-mdy startdate)
如果我从 REPL 中测试,上面的代码可以满足我的要求:
mr.handler=> (use 'mr.layouts)
nil
mr.handler=> (require '[clj-time.format :as ctf])
nil
mr.handler=> (coerce-mdy "2012-01-01")
"January 1, 2012"
mr.handler=> (coerce-mdy "2014-10-04")
"October 4, 2014"
mr.handler=>
但是我在网页上看到的是“2013 年 9 月 1 日”(截至撰写本文时的今天),没有其他日期。我的数据库中没有“2013-09-01”。
我从 (coerse-mdy) 的数据库中返回了原始日期值,它返回了正确的日期,所以我能够隔离这个问题的最接近的是 (to-mdy) 或 (coerce- mdy)。
到目前为止,我已经尝试将函数移动到本地命名空间并使用本地化的 let 值。