【问题标题】:getting classcast exception while converting date from string type to date data type将日期从字符串类型转换为日期数据类型时获取类转换异常
【发布时间】:2014-03-20 15:06:29
【问题描述】:

我在方法参数中以字符串的形式获取日期(SettlementDate),如下面的方法所示

   public List<abc> eee(Long Id,
                String sfsdf, boolean dfds,
                 String SettlementDate,
                ) {

现在我正在应用如下所示的标准,但在我应用标准的 pojo 中,字段 (SettlementDate) 的日期类型如下所示

class ddd
{
private Date settlementDate;
}

以下是标准实现

Criteria query = session.createCriteria(ddd.class);
query.add(Restrictions.eq("Id", Id));
query.add(Restrictions.eq("sfsdf", sfsdf));
query.add(Restrictions.eq("settlementDate", SettlementDate );

最终在数据库中我想以这种格式存储日期 22.07.2016 00:00:00

现在请告诉我如何在标准中设置这个值作为仪式现在我在下面的行中得到类转换异常

query.add(Restrictions.eq("settlementDate", SettlementDate );

这清楚地证明了字符串类型的日期没有转换为日期格式(22.07.2016 00:00:00) 伙计们,如果我必须使用简单的日期格式,那么请告知在这种情况下如何使用它,谢谢

【问题讨论】:

  • 日期没有格式。
  • @SotiriosDelimanolis 日期我想以这种格式存储 22.07.2016 00:00:00
  • 日期没有格式。您存储的不是格式,而是日期。
  • @SotiriosDelimanolis 同意请您指教,如何将日期从字符串类型转换为日期数据类型
  • 你只需要使用 SimpleDateFormat。

标签: java hibernate date criteria


【解决方案1】:

如果我理解正确,您希望将日期字符串转换为日期。你可以试试这个:

query.add(Restrictions.eq("settlementDate", new SimpleDateFormat("dd.MM.yyyy hh:mm:ss").parse(SettlementDate)));

其他一些评论:

  • 在数据库中存储日期时,应使用日期或日期时间格式,或者可能包含毫秒的数字,但绝对不是字符串
  • Java 类应该以大写开头
  • 变量和参数名称应以小写字母开头

【讨论】:

  • @Fortega 我知道你错过了一个括号,因为它给出了编译错误
猜你喜欢
  • 2020-09-06
  • 2023-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-06
  • 1970-01-01
  • 2021-04-10
  • 2020-12-16
相关资源
最近更新 更多