首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将Clojure/Java日期转换为更简单的格式

如何将Clojure/Java日期转换为更简单的格式
EN

Stack Overflow用户
提问于 2013-02-08 01:46:00
回答 2查看 9.3K关注 0票数 15

我想带上

代码语言:javascript
复制
(str (Date.))
"Thu Feb 07 12:15:03 EST 2013"

并将其转换为字符串,以便可以将其输入到Informix日期字段mm/dd/yyyy中。

代码语言:javascript
复制
02/07/2013

我一直在看各种帖子,但都没有成功。这是我发现并尝试的第一件事,因为我知道我必须颠倒日期格式的顺序。我只想让它正常工作。

代码语言:javascript
复制
(defn str-to-date [date] (. (SimpleDateFormat. "yyyy-MM-dd") parse date))

我得到了这个错误

代码语言:javascript
复制
(str-to-date (str (Date.)))
ParseException Unparseable date: 
"Thu Feb 07 12:44:41 EST 2013"  java.text.DateFormat.parse (DateFormat.java:354)

我也试过这个

代码语言:javascript
复制
 (.parse (SimpleDateFormat. "mm/DD/yyyy") (str (Date.)))
ParseException Unparseable date: 
"Thu Feb 07 12:42:02 EST 2013"  java.text.DateFormat.parse (DateFormat.java:354)

但没有成功。任何文档的指针或答案都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-08 01:57:43

代码语言:javascript
复制
(def date (java.util.Date.))
date 
=> #inst "2013-02-07T19:08:12.107-00:00"

您可以直接将格式设置为所需格式

代码语言:javascript
复制
(.format (java.text.SimpleDateFormat. "MM/dd/yyyy") date)
=> "02/07/2013"

但如果从字符串开始,

代码语言:javascript
复制
(str date)
=> "Thu Feb 07 13:08:12 CST 2013"

您必须首先使用该字符串的格式进行解析

代码语言:javascript
复制
(def df (java.text.SimpleDateFormat. "EEE MMM d HH:mm:ss zzz yyyy"))
(.parse df (str date))
=> #inst "2013-02-07T19:08:12.107-00:00"

然后返回到所需的格式

代码语言:javascript
复制
(.format (java.text.SimpleDateFormat. "MM/dd/yyyy") (.parse df (str date)))
=> "02/07/2013"

您可能还想查看一些时间和日期库:What are the Clojure time and date libraries?

票数 24
EN

Stack Overflow用户

发布于 2013-02-08 02:16:50

.parse接受SimpleDateFormat构造函数中指定格式的字符串,并将其转换为Date对象。如果您可以只传入日期,那么可以使用.format向它传递要格式化的日期。如果你需要传入一个字符串,那么你需要2个SimpleDateFormats。一个用于输入格式,另一个用于输出格式。使用输入格式调用.parse,使用输出格式调用.format。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14757553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档