java - 更改日期格式以查询数据库

标签 java hibernate

如何更改以下日期的日期格式

Thu May 17 00:00:00 GMT+05:30 2012

2012-05-17 00:00:00

我需要它作为日期而不是字符串。我正在使用

new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("")

但它没有给出结果。 实际上,我正在明智地存储值。因此,当有人再次输入同一日期的数据时,它应该被覆盖。 如果我将它作为日期对象传递到 hibernate 查询中,它会给出结果。但不总是。在少数情况下,它会再次插入,即插入同一日期的重复数据。在输入之前,我添加了一种方法来检查该日期的数据是否存在。 criteria.add(Restrictions.eq("date", date));

最佳答案

您根本不应该在这里进行字符串操作。您在评论中说过它是数据库中的日期/时间字段,那么为什么您的代码中会涉及任何字符串转换?

将 JDBC 中的参数指定为 java.sql.Datejava.sql.Timestamp 或其他 - 然后也以这种方式获取它们。不要进行字符串转换。忽略在工具中查询数据库时显示的任何格式 - 根本不要认为结果具有“格式” - 它们只是日期。

关于java - 更改日期格式以查询数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10616851/

相关文章:

java - 通过 XSLT 设置 XML 属性的顺序?

java - Eclipse 无法识别 Android 设备

java - 如何在jsp中显示日期,如 "2017-08-30 14:35:43"

java - 如何在大型项目中修复 "object references an unsaved transient instance - save the transient instance before flushing"?

java - 如何使用 JPA - EntityGraph 只加载实体@Basic 属性的一个子集?

java - "low risk"JDO 或 JPA 之间的选择是什么?

java - 如何在 Hibernate 中序列化集合属性?

java - Hibernate:如何从 "many"一侧删除 "one"一侧的一对多关系中的实体

java - Hibernate:无法级联删除子级的单向父级

java.lang.String 无法转换为 HQL