java从oracle中获取时间类型数据,通过ResultSet 对象的getDate方法 可以获取到java.sql.Date对象 sql.Data对象只有年月日,但是我需要 小时、分钟 显示在页面上, 现在我唯一能做到的就是 通过ResultSet对象的getString方法获取 数据库中的时间,再转换为java.util.Date对象  请问一下各位大牛,还有更好的实现方法么?这时我又遇到了问题,在插入数据库时,页面获取的时间类型为String 并且带小时和分钟, 通过查找jdk 没找到一个能把String类型(带小时、分钟)的时间变量 转换为sql.Data对象的, 因为是通过实体类传递参数,需要把时间的字符串转为sql.Date,这时我就无法插入数据库, 求实现方法(除了通过oracle中to_date函数,把字符串转换为时间格式)。

解决方案 »

  1.   

    你要的是两类需求:
    1、将Date对象按照 yyyy/MM/dd HH:mm:ss 进行输出;
    2、将一个符合上述规范的String转为Date对象。这两个需求,都可以通过一个类来完成,就是:SimpleDateFormatSimpleDateFormat formater = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
    String text = formater.format(new Date());
    Date dd = formater.parse("2000/01/01 12:00:00");
      

  2.   

    sql.Date也有时间的,你的显示没处理好吧如果不想用oracle的to_date函数,可以自己生成sql.Date对象
    String s = "2012-06-21 00:10:00";
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    java.util.Date d1 = sdf.parse(s); //先把字符串转为util.Date对象
    java.net.sql.Date d2 = new java.net.sql.Date(d1.getTime()); //再转换为sql.Date对象
      

  3.   

    表定义的时候 定义成String不行吗 不使用Date
      

  4.   


    问一下 把带小时,分钟的字符串能通过simpledateformat转换为sql.date么?
      

  5.   


    sql.data 有小时、分钟? resultset对象的getDate方法 获得的sql.date 没有小时,分钟啊?求解答
      

  6.   

    sql.Date是util.Date的子类,怎么会没有时间?SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    java.sql.Date d = new java.sql.Date(new java.util.Date().getTime());
    System.out.println(sdf.format(d)); //d是sql.Date对象,可以打印出时间另,LZ所谓的sql.data是指java.sql.Date吧?
      

  7.   

    你用getDate没有获得sql.Date没有小时或分钟,那可能是数据库的数据本来就没有这些信息吧
      

  8.   

    1.从数据库里面查询的时候,使用ResultSet的getTimestamp方法2.插入数据的时候使用java.util.Date。(应该可以,没试过)
      

  9.   

    数据库中 中的数据是有 年月日,小时分钟秒的 时间类型数据。  但是获取的时候 java.sql.date中 没有 小时,分钟啊。 不仅输出了,而且debug观察下 小时,分钟 都为0
      

  10.   

    那你的sql是怎么取的数据?是不是把后面的时分秒都trunc掉了
      

  11.   

    jdk帮助文档:
    java.sql 
    类 Date
    java.lang.Object
      java.util.Date
          java.sql.Date
    所有已实现的接口: 
    Serializable, Cloneable, Comparable<Date> 
    public class Date extends Date
    一个包装了毫秒值的瘦包装器 (thin wrapper),它允许 JDBC 将毫秒值标识为 SQL DATE 值。毫秒值表示自 1970 年 1 月 1 日 00:00:00 GMT 以来经过的毫秒数。 为了与 SQL DATE 的定义一致,由 java.sql.Date 实例包装的毫秒值必须通过将小时、分钟、秒和毫秒设置为与该实例相关的特定时区中的零来“规范化”。 
    --------------------------------------------------------------------------------
    构造方法摘要 
    Date(int year, int month, int day) 
              已过时。 使用构造方法 Date(long date) 替代 
    Date(long date) 
              使用给定毫秒时间值构造一个 Date 对象。 
    方法摘要
    setTime(long date) 
              使用给定毫秒时间值设置现有 Date 对象。
    从类 java.util.Date 继承的方法 
    after, before, clone, compareTo, equals, getDate, getDay, getMonth, getTime, getTimezoneOffset, getYear, hashCode, parse, setDate, setMonth, setYear, toGMTString, toLocaleString, UTC 
    看看帮助,通过java+Date关键字搜索java日期类的用法,外加实践,就能得到答案
      

  12.   


    是的,多翻翻  API   就知道了…… 
      

  13.   

    oracle自带把字符串转化成日期的东西。to_date(Str,'yyyymmddhhmmss')