java.text.ParseException: Unparseable date: 2/10/2010 15:20:05

1、

VO类中定义的日期类型是字符串, private String editdate;    

 Oracle数据库,读取日期数据,然后set(),得到的日期在页面显示为:2/10/2010 15:20:05

    s.seteditdate(sql_res.getString("editdate"));    //得到值为2/10/2010 15:20:05

      2/10/2010 15:20:05 ,这不是我想要的,我要在页面上显示的日期格式为:yyyy-MM-dd HH:mm:ss  ,例如2010-2-10 15:20:05

怎样将  2/10/2010 15:20:05  转成2010-2-10 15:20:05 呢。

思路:将字符串转为日期类型,然后再将日期类型转成字符串类型并在页面显示。原理是将字符类型转换成相应的日期类型,然后将日期类型转成所需的字符串类型。

 

 用到日期转换类,SimpleDateFormat。

 

以下为日期处理类:DateUtilExtend

private static DateFormat  yyyyMMddHHmmss=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 

 private static DateFormat  ddMMyyyyHHmmssFormat = new SimpleDateFormat(
 "MM/dd/yyyy HH:mm:ss");

/**
  * 根据字符返回日期 格式为 dd/MM/yyyy HH:mm:ss 的日期
  * @param dateValue
  * @return Date
  * @author hzg
  * @date 2011-02-10
  */
 public static Date getddMMyyyyHHmmssDateByString(String dateValue){
  Date date=null;
  try {
   date= ddMMyyyyHHmmssFormat.parse(dateValue);

  } catch (ParseException e) {
    e.printStackTrace();
  }
  return date;
 }
 
 /**
  * 根据日期返回字符串,格式为 yyyy-MM-dd HH:mm:ss
  * @param d
  * @return strDate
  * @author hzg
  * @date 2011-02-10
  */
 public static String DateToString(String dateValue){
  String strDate = "";
  if(dateValue==null){
   strDate = null;
  }else{
   Date d = getddMMyyyyHHmmssDateByString(dateValue);
   strDate = yyyyMMddHHmmss.format(d);
  }
  return strDate;
 }

 

通过调用日期处理类,最后处理的结果为:

s.seteditdate(DateUtilExtend.DateToString(sql_res.getString("editdate")));

 

2、

还有一种方法是在SQL语句中用select tochar("yyyy-MM-dd",editdate) as editdate from table

3、

还有就在VO中将日期数据定义为Date类型,如: private Date editdate;   

直接调用日期转换类将日期转换成字符串。

你可能感兴趣的:(java,oracle,sql)