本帖最后由 jsw7001 于 2010-07-01 16:50:18 编辑

解决方案 »

  1.   

    Date和Calendar可以很方便的获得你想要的时间的任何形式....揉成麻花都行
      

  2.   

    'yyyy mm dd hh24:mi:ss'  用这样的格式转换一下,不知道你是不是这个意思
      

  3.   

    问题一:对于你的第三种输出System.out.println(dateTime_q + "----3----" + dateTime_z);
          其实这时候调用了dateTime_q 和dateTime_z的 toString()方法
          查查api就知道为什么没有时分秒了,下面是doc的原文:
    =======================================
          toStringpublic String toString()
    Formats a date in the date escape format yyyy-mm-dd.
    NOTE: To specify a date format for the class SimpleDateFormat, use "yyyy.MM.dd" rather than "yyyy-mm-dd". In the context of SimpleDateFormat, "mm" indicates minutes rather than the month. For example:
      Format Pattern                         Result
      --------------                         -------
            "yyyy.MM.dd G 'at' hh:mm:ss z"    ->>  1996.07.10 AD at 15:08:56 PDT
     
    Overrides:
    toString in class Date
    Returns:
    a String in yyyy-mm-dd format注里这里的返回结果
    ======================================================================问题二:你的方法没错,至于简单实用的方法这不好说,简单和实用是相对的,取决于你系统是怎么设计的,比如用了什么框架,因为框架会帮你做一些事情(虽然逻辑都一样)问题三:首先你的sql 很奇怪,估计是笔误,还有就是看你用的什么数据库,不同的数所库有不同的function,拿oracle来说吧:
      可以这么写:
    select * from table to_char(a_time,'yyyy-mm-dd')='2010-01-01'
      

  4.   

      
     
       谢谢6楼,但还是不够详细。 
      
      第一个问题: 如果不能用getTime()输出时分秒,那有什么其它的替代办法? 因为我要查的是同一天内一个时间段的东西,所以还是需要精确到时分秒。  
        
      第二个问题: 想知道朋友们平时是怎么用的?   
      
      第三个问题: 用select * from table to_char(a_time,'yyyy-mm-dd')='2010-01-01' 这种方式更不可取,虽然用了to_char去掉了时间后面的时分秒部分,但是字符得到的是"17-10月-05"这种格式,根本无法与'2010-01-01'匹配。  
        
      
      请继续讨论。
      
      
      

  5.   

    //问题三   同一天的条件可以转换成如下格式  用btween 或是 >= <=进行判断。
    //至于如何查询要根具体的数据库相关
    //比如oralce  yourDate btween to_date(date1,'yyyy-mm-dd hh24:mi:ss') and 
    //to_date(date2,'yyyy-mm-dd hh24:mi:ss');
    String date1 = "2008-9-2 00:00:00";
    String date2 = "2008-9-2 23:59:59";
    //问题二、下面的即为我常用的时间转换步骤
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Date d1 = null;
    Date d2 = null;
    try {
    d1 = sdf.parse(date1);
    d2 = sdf.parse(date2);
    } catch (ParseException e) {
    e.printStackTrace();
    }
                    //问题三  进行转换之后是可以输出时分秒的
    java.sql.Date sd1 = new java.sql.Date(d1.getTime());
    java.sql.Date sd2 = new java.sql.Date(d2.getTime());

    System.out.println(sdf.format(sd1));
    System.out.println(sdf.format(sd2));
      

  6.   

    尽量用java.util.Date吧,然后进行时间格式化。
      

  7.   

    LZ。你去Oracle的官网去看看关于Date和Timestamp的说明。  java.sql.Date就是没有时分秒的。 可以用java.util.Date或者java.sql.Timestamp.
      

  8.   

    请楼上各位逐一回答问题,不精确的回答跟没有有多大区别呢? 另外,java.util.date是java中的时间,但是传入oracle中还是需要java.sql.date啊? 可以只使用java.util.date传入sql中吗?
      

  9.   

    chooseforget说得很明白了,用java.sql.Timestamp