Hibernate中遇到的String转Date的问题的解决办法

我的数据库中表的字段是date类型,所以Hibernate影射文件所对应的字段是java.util.Date类型.

一开始我用的是最直接的

obj.setDate(new Date(request.getParameter("date")));

但是new Date(request.getParameter("date"))是存在安全问题的!是一个已过时的方法,而且好像Hibernate对这个方法也不支持。

数据插入也不成功!那到底怎样才能把一个取回来yyyy-mm-dd的数据转换为一个date类型的数据呢?百度了一下找到下面的两种方式:

一、用 SimpleDateFormat 的parse方法
  1. public static void main(String[] args) {   
  2.         String d = "2008-10-13 15:20:25";   
  3.         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd hh:mm:ss");   
  4.         try {   
  5.             System.out.println(sdf.parse(d));   
  6.         } catch (Exception e) {   
  7.         }   
  8.     }  

不过这种方法转换出来的结果是我的时间少了10个月,当然我转的格式是:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");

并没有要时分秒!会少10个应该是各方法设置的月份转换的问题!

那所以这种方法最后没被采用!

二、用java.sql.Date类

 try{
            
            String   SD   
=   "1999-01-31";           
            java.sql.Date   d1   
=   java.sql.Date.valueOf(SD);
            System.out.println(d1);
            
            java.text.SimpleDateFormat   input_str
=   new   java.text.SimpleDateFormat(   "yyyy/mm/dd"   );
            String   tmpDate   
=   "2000/03/02";
            java.util.Date   xdate   
=   input_str.parse(   tmpDate   );           
            java.sql.Date   d   
=   new   java.sql.Date(xdate.getTime());
            System.out.println(d);
        }
catch(java.text.ParseException   pe)   
            System.out.println(
"   Error   "   +   pe);  
        }
   

 

最后是第二种方法转换成功了^O^

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值