我今天碰到个问题,还需各位大神指点下。
oracle数据库里有个表,字段为transDate,类型是Timestamp。通过hibernate映射。
我要在后台新增或更新它,后台输入的日期格式是:
string currDate = "02-6月-2013 23.59.59.999 上午 +0800"。我通过Timestamp t = Timestamp.valueOf(currDate)转换它出错了;真心希望各位帮我解决。Calendar  timestamp

解决方案 »

  1.   

    用SimpleDateFormat把string转化成date
    比如
    Date d = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(inputString);
      

  2.   

    string currDate = "02-6月-2013 23.59.59.999 上午 +0800"。我通过Timestamp t = Timestamp.valueOf(currDate)转换它出错了;你这种格式需要转的,不能直接用,直接用的是yyyy-MM-dd HH:mm:ss 的形式。
      

  3.   

    试一下 dd-MM-yyyy HH:mm:ss Z中文可能是问题啊
      

  4.   

    dd-MM-yyyy HH.mm.ss.SSS a Z
      

  5.   

    又写错了
    z 小写dd-MM-yyyy HH.mm.ss.SSS a z 
      

  6.   

    这个数据库里保存成那样干什么,你不是说你用oracle数据库么,直接保存成万能的long类型,然后通过oracle自带的date来获取他真实的时间格式
      

  7.   

    http://www.cnblogs.com/mailingfeng/archive/2011/07/28/2120422.html
      

  8.   

    http://jiankeafei.iteye.com/blog/230928
      

  9.   

    通常我们在输入一个  "时间"  时候是 String 类型的, 但是 我们的数据库中字段需要的是  Date 类型
    怎么办?   我们当然是把 String 转换成 Date 类型  我这里有一个 方法   不知道能不能帮上忙,
    public  final String CurrentYMDTime(String date){
    String curTime="";
    //格式化时间开始
    SimpleDateFormat formatter;
    java.util.Date currentDate=new java.util.Date();
    formatter=new SimpleDateFormat("yyyy-MM-dd");
    try {
    currentDate = formatter.parse(date);
    } catch (ParseException e) {
    e.printStackTrace();
    }
    //格式化时间结束
    curTime= formatter.format(currentDate);
    return curTime;
    }
      

  10.   

    API里TimeStamp中valueOf方法的注释:
    参数:
    s - 使用 yyyy-mm-dd hh:mm:ss[.f...] 格式的时间戳。可以省略小数秒。从以上看,我觉得你那个字符串string currDate = "02-6月-2013 23.59.59.999 上午 +0800"应该把最后面这个“上午 +800”去掉就可以了
    我是新手,互相探讨,如回答有误还望谅解~
      

  11.   

    建议用户按 new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());去保存日期格式