Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure parse不接受所有月份名称缩写_Clojure_Jodatime_Clj Time - Fatal编程技术网

Clojure parse不接受所有月份名称缩写

Clojure parse不接受所有月份名称缩写,clojure,jodatime,clj-time,Clojure,Jodatime,Clj Time,对于给定的自定义格式化程序,parse拒绝某些月值 (require '[clj-time.core :as t] '[clj-time.format :as f]) (let [custom-formatter (f/formatter "dd MMM yyyy")] (f/parse custom-formatter "27 mar 2010") (f/parse custom-formatter "27 dec 2010")) 第一个语法分析器返回预期的结果object[o

对于给定的自定义格式化程序,parse拒绝某些月值

(require '[clj-time.core :as t]
'[clj-time.format :as f]) 


(let [custom-formatter  (f/formatter  "dd MMM yyyy")]
(f/parse custom-formatter  "27 mar 2010")
(f/parse custom-formatter  "27 dec 2010"))
第一个语法分析器返回预期的结果object[org.joda.time.DateTime 0x62a9d176 2010-03-27T00:00:00.000Z],而第二个语法分析器返回实际值:java.lang.IllegalArgumentException:无效格式:2010年12月27日格式不正确

我无法理解这种行为。什么可能导致这个问题

谢谢你的帮助

更新

这是我的project.cljfile


您可能需要为格式化程序指定区域设置。您可以通过以下选项查看默认区域设置:

user=> (java.util.Locale/getDefault)
#object[java.util.Locale 0x4713d9a5 "en_US"]
查看不同地区的结果,包括您看到的错误:

user=> (require '[clj-time.core :as t]
  #_=> '[clj-time.format :as f]) 
nil

user=> (let [custom-formatter  (f/with-locale 
                                 (f/formatter  "dd MMM yyyy")
                                 java.util.Locale/ENGLISH)] 
         (f/parse custom-formatter  "27 mar 2010"))
#object[org.joda.time.DateTime 0x3cfceae6 "2010-03-27T00:00:00.000Z"]

user=> (let [custom-formatter  (f/with-locale 
                                 (f/formatter  "dd MMM yyyy")
                                 java.util.Locale/ITALY)] 
         (f/parse custom-formatter  "27 mar 2010"))
#object[org.joda.time.DateTime 0x4f5e9955 "2010-03-27T00:00:00.000Z"]

user=> (let [custom-formatter  (f/with-locale 
                                 (f/formatter  "dd MMM yyyy")
                                 java.util.Locale/CHINA)] 
         (f/parse custom-formatter  "27 mar 2010"))

IllegalArgumentException Invalid format: "27 mar 2010" is malformed at "mar 2010"  org.joda.time.format.DateTimeFormatter.parseDateTime (DateTimeFormatter.java:899)

您可能需要为格式化程序指定区域设置。您可以通过以下选项查看默认区域设置:

user=> (java.util.Locale/getDefault)
#object[java.util.Locale 0x4713d9a5 "en_US"]
查看不同地区的结果,包括您看到的错误:

user=> (require '[clj-time.core :as t]
  #_=> '[clj-time.format :as f]) 
nil

user=> (let [custom-formatter  (f/with-locale 
                                 (f/formatter  "dd MMM yyyy")
                                 java.util.Locale/ENGLISH)] 
         (f/parse custom-formatter  "27 mar 2010"))
#object[org.joda.time.DateTime 0x3cfceae6 "2010-03-27T00:00:00.000Z"]

user=> (let [custom-formatter  (f/with-locale 
                                 (f/formatter  "dd MMM yyyy")
                                 java.util.Locale/ITALY)] 
         (f/parse custom-formatter  "27 mar 2010"))
#object[org.joda.time.DateTime 0x4f5e9955 "2010-03-27T00:00:00.000Z"]

user=> (let [custom-formatter  (f/with-locale 
                                 (f/formatter  "dd MMM yyyy")
                                 java.util.Locale/CHINA)] 
         (f/parse custom-formatter  "27 mar 2010"))

IllegalArgumentException Invalid format: "27 mar 2010" is malformed at "mar 2010"  org.joda.time.format.DateTimeFormatter.parseDateTime (DateTimeFormatter.java:899)

产生的错误似乎与您发布的示例无关。看起来您正在尝试解析2010年10月27日的内容,其中有一个额外的空格。@kongeor您是对的。我的复制/粘贴搞砸了。现在,我已经更新了我的帖子。我描述的错误确实是在正确的格式下发生的。奇怪。你的代码对我有用。请注意,您有一个额外的右括号。如果将此代码示例放入REPL,它会中断吗?您正在使用哪个版本?是的,它在REPL中也会中断。我已经提供了我使用的依赖项。你能在这个环境中运行测试吗?这是您列出的两个示例。产生的错误似乎与您发布的示例无关。看起来您正在尝试解析2010年10月27日的内容,其中有一个额外的空格。@kongeor您是对的。我的复制/粘贴搞砸了。现在,我已经更新了我的帖子。我描述的错误确实是在正确的格式下发生的。奇怪。你的代码对我有用。请注意,您有一个额外的右括号。如果将此代码示例放入REPL,它会中断吗?您正在使用哪个版本?是的,它在REPL中也会中断。我已经提供了我使用的依赖项。你能在这个环境中运行测试吗?以下是您列出的两个示例。