String TIME1 = request.getParameter("time");      
             String date1=request.getParameter("datepicker");
             
SimpleDateFormat sdf = new SimpleDateFormat("yy-mm-dd");             SimpleDateFormat sdf1 = new SimpleDateFormat("HH:mm");java.util.Date date=new java.util.Date();java.util.Date time1=new java.util.Date(); date = sdf.parse(date1);              time1 = sdf1.parse(TIME1);out.print(new java.sql.Date(date.getTime())); //output: 2010-01-01
out.print(new java.sql.Time(time1.getTime()));//output: 9:00 statement.setDate(4, new java.sql.Date(date.getTime()));
out.print(new java.sql.Date(date.getTime())); outprint出來是對的,但是當入了database,在database用date type,就出了2010-01-01 00:00:00
out.print(new java.sql.Time(time1.getTime()));outprint出來是對的,但是當入了database,在database,就出了1970-01-01 09:00:00 
這2個都是用date type去儲.
我只是想要日期就日期,時間就時間.不是2個都要
我是用oracle.jdbc.OracleDriver.

解决方案 »

  1.   

    那要看看你数据库里面字段的格式是什么吧,如果数据库的字段精度高,数据库存储时会自动转换的。另外,这样其实问题也不大,输出的时候,用 SimpleDateFormater 格式化好了。
      

  2.   

    估计lz数据库字段设置的是datetime类型. 这样当你用日期格式输入时自动加入后面时间00:00:00
    而当你用时间传入时因为缺少了日期信息所以变成默认的日期开始计算时间.
      

  3.   

    可以用oracle函数转下,注意取值的时候用getString
    select to_char(日期字段,'yyyy-mm-dd') from table
      

  4.   

    oracle database沒有datetime類型,只有 date還有,剛才發現有一個錯.就是當選2012-02-02,但入了database,變了2012-01-02,慢了1個月..
      

  5.   


    更新:
    原來我本身getParameter錯了,不知道為什麼我選2月,get來就是1月..datepicker code:
    <script>
        $(document).ready(function() {
    $(function() {
    $( "#datepicker" ).datepicker({dateFormat: 'yy-mm-dd',
                    maxDate: '+1m',
                    minDate: 'Now',
                    beforeShowDay: noSundays
                    });
                });
    });
            function noSundays(a) {   a=a.getDay();   return[a>0&&a<7,""]; }
    </script>
      

  6.   

    我朋友剛才幫我看,String xx getParameter 就沒問題,因為用String 來get一定對.但是
    去到
    SimpleDateFormat sdf = new SimpleDateFormat("yy-mm-dd");Date date = sdf.parse(date1);
    就變了慢1個月...