首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SimpleDateFormat返回"Sun Oct 10 00:00:00 BRT 2010“,但插入"2010-10-10”

SimpleDateFormat返回"Sun Oct 10 00:00:00 BRT 2010“,但插入"2010-10-10”
EN

Stack Overflow用户
提问于 2016-04-01 09:23:33
回答 1查看 81关注 0票数 0

我有一个使用SimpleDateFormat的代码

代码语言:javascript
复制
String data = jTData.getText();
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Date dataInserir = null;
dataInserir = formatter.parse(data);
System.out.println(dataInserir);

如果来自jTData.getText()的字符串是"2010-10-10“,则此代码的输出为:

代码语言:javascript
复制
Sun Oct 10 00:00:00 BRT 2010.

但是,它在数据库中插入的值是2010-10-10。

此字段为:

代码语言:javascript
复制
 @Temporal(javax.persistence.TemporalType.DATE)
    private Date data;

我错过了什么,我不能得到像2010-10-10这样的输出作为Date?如果输出是Sun Oct 10 00:00:00 BRT 2010,为什么要插入值2010-10-10?任何帮助我都会很感激的,谢谢。

EN

回答 1

Stack Overflow用户

发布于 2016-04-02 04:06:29

我怀疑您混淆了java.util.Date类和java.sql.Date的本质。第一个是日期和时间,第二个是仅日期。

您已将批注标记为javax.persistence.TemporalType.DATE。枚举文档说明很简单:

作为java.sql.Date的

映射

您说过只存储日期的

所以你正在体验的是一个特性,而不是一个bug。

如果要存储带有日期时间的日期,请使用javax.persistence.TemporalType.TIMESTAMP注释。

在数据库中的列上使用timestamp类型(几乎总是timestamp- with -time-zone类型)。

此外,我建议使用java.time框架,而不要使用麻烦的java.util.Date和SimpleDateFormat类。但这完全是另一个话题。

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

https://stackoverflow.com/questions/36346512

复制
相关文章

相似问题

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