用GregorianCalendar来进行日期的管理,必使用date好,你不妨使用它来试试,或许能减少你的负担。

解决方案 »

  1.   

    哈哈,不可能吧,其实很简单啊,日期格式在数据库中就要用日期格式存放。
    假如你取得了六个数据
    year 
    month
    day
    hour
    min
    sec
    Date d=new Date()
    d.setYear()
    d.setMonth()......
    之后插入到数据库中
    驱除的时候用to_char(youtimefield,'yyyy-mm-dd hh:mm:ss')的形式就应该没有问题
    至于Data.parseDate());我用过的,好象问题很大,无论如何就是无法转化
      

  2.   

    使用oracle自带的内部函数:to_date(datetime,'yyyy/mm/dd hh:mm:ss')插入数据,
    用to_char(datetime,'yyyy/mm/dd hh:mm:ss')取出数据。
      

  3.   

    既然是得到6个JTextField的string值,自然可以简单地组装成这种样式:
    “yyyy-MM-dd kk:mm:ss”
    如时间字符串为:String aDate = "2002-12-01 10:22:20";
    java中对应数据库中的年月日时分秒的class是java.sql.Timestamp。
    java.sql.Date不行,只有年月日,java.sql.Time也不行,只有时分秒,
    而java.util.Date虽然是有年月日时分秒,但并非数据库支持的对象。
    所以,得到时间string后,做个转换成java.sql.Timestamp对象即可,
    调用函数如下:
    /**
     * 作者:alphazhao
     * 日期:2002-5-27
     * 描述:将一个类型为"yyyy-MM-dd kk:mm:ss"的字符串转换为一个系统日期
     *       因转换日期为util.Date类型,无法插入数据库,需改为Timestamp类型
     *       注意时间字符串格式
     * */
    public class StringToDate {
      public final static java.sql.Timestamp string2Date(String dateString)
      throws java.lang.Exception {
        DateFormat dateFormat;
        dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss", Locale.ENGLISH);
        dateFormat.setLenient(false);
        java.util.Date timeDate = dateFormat.parse(dateString);//util类型
        java.sql.Timestamp dateTime = new java.sql.Timestamp(timeDate.getTime());//Timestamp类型
        return dateTime;
      }
    }至于读取数据,就不用我详细说了吧?
    另外,oracle用varchar对象来存放时间对象肯定是不行的,在实际项目中肯定会出大问题,比如客户按时间查询统计等……
      

  4.   

    我这里没有Oracle数据库
    代码很简单
    int year=2002;
    int month=10;
    int day=20;
    int hour30;
    int min=40;
    int sec=50;
    Date d=new Date();
    d.setYear(year);
    d.setMonth(month);
    d.setDate(day);
    d.setMinutes(min);
    d.setSeconds(sec);
    System.out.println(d);
    当然数据库的那部分没有写,你只要用日期的形式插入,如果比较的话就用to_char(youtimefield,'yyyy-mm-dd hh:mm:ss')进行比较例如
    to_char(youtimefield,'yyyy-mm-dd hh:mm:ss')>'2002-10-01 12:10:50'就没有问题的。
      

  5.   

    谢谢各位了,我虽然没有实做,我想大家提供的一定有正确的答案.插入的时候有点问题 to_date(myDate,myFormat)中的myDate是什么类型的啊?
    String ?Date? TimeStamp?
    如果是String 类型的,是不是要写成myFormat格式的啊?至于显示吗,我用了to_char(),所以最后得用myDate=rs.getString() 来做,估计就是这里出的问题,当我把myDate分析出来然后送入一个Date对象以后,就发现内容变了.我想也许真的如斑竹说的那样sql不支持java.util.Date吧.快要结帖了,再次表示对大家的感谢.
      

  6.   

    to_date(myDate,myFormat),myDate为String
      

  7.   

    也就是说你的日期是用myFormat格式存入数据库中的。但是数据库中定义的必须是日期类型,如果定义了日期类型的则调用,rs.getDate()之后利用,SimpleFormatDate()对驱除的日期进行格式转化
      

  8.   

    数据库里面嘛,我再笨,也该是个 Date类型的啊.to :alphazhao(绿色咖啡)
     一个习惯问题,在您设计的那个小程序里面,为什么要throws Exception而不是在程序里面自己解决呢?经验问题,请赐教!!!!
      

  9.   

    oracle的to_char(日期,参数)也许能解决你的问题
    'YYY'、'YY'、'Y', 得到年的最后三位,两位,一位
    syear, year,得到当前年,公元前的年加上负号
    q,当前季度
    MM,当前月
    RM,罗马数字表示月
    Month,9个字符表示月
    WW,当年的几周
    W,本月第几周
    DDD,当年第几天
    DD,当月第几天
    D,周内第几天
    DY,周内第几天缩写
    HH、HH12,12进制小时数
    HH24,24小时制
    MI,分钟数(0~59)
    SS,秒数(0~59)
      

  10.   

    to :alphazhao(绿色咖啡)
     一个习惯问题,在您设计的那个小程序里面,为什么要throws Exception而不是在程序里面自己解决呢?我那个class是写给其它class调用的,因为系统架构问题,所有的异常必须捕捉并判断是何种异常,其实我已经将异常改动了……:-(
    一般系统而言,我采用在最外层那个java文件或bean里面实现错误捕捉及处理。
    如果在每个被调用的class里面就处理的话,只能在系统后台输出信息,而无法将错误返回外层,对调试阿什么的就不方便了……