把字符类型转换成时间类型
String str = "2007-12-07";
Date date = java.sql.Date.valueOf(str);
System.out.println("Data: " + date);
使用java.sql中的Date类,注意输入的的格式是xxxx-xx-xx,否则会报错,
这样会把输入的字符串转换为数据库中的datatime类型,读取时,将datatime转化成String类型,方法为.toString(),显示的时间格式为xxxx-xx-xx
从查询的结果集中获得时间类型时如果用getString(1)的话就会将时间的分秒显示出来,如果用getData(1)的话,就只会显示日期。要注意,在数据库中时间类型是从过去的某一时间开始的,在填写时不要故意超过这个时间,否则会出错。
对与数据库中的时间可以保存为datetime类型,也可以保存为字符类型,插入时间,可以是人为输入的,也可以是获取的系统时间,
如果数据库中的时间类型是datetime类型的话,需要将时间格式化(util包中的时间需要转化为数据库中的时间),具体的有下面一些。
//使用util包中的Date()获取系统时间
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
String date1=df.format(new Date());// new Date()为获取当前系统时间
java.sql.Date date=java.sql.Date.valueOf(date1)//将格式化后的字符转化成数据库中的Date()类型
//用Calendar获取系统时间
Calendar cal=new GregorianCalendar();
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:MM:ss");java.sql.Date date1=java.sql.Date.valueOf(df.format(cal.getTime()));//将格式化后的字符转化成数据库中的Date()类型
如果是输入的格式为xxxx-xx-xx的时间,则进行下面操作
String time=req.getParameter();
java.sql.Date date1=java.sql.Date.valueOf(time);
如果数据库中存的是字符类型:
则的到的字符不用转化为数据库的date类型,用SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:MM:ss");将时间格式化相应格式就行
另外,在将java.util中时间类型 转化成java.sql中的时间类型时,有三种方法:
java.sql.Date date=java.sql.Date.valueOf(date1)//date1是字符类型,将util中时间格式化得到的(格式必须为xxxx-xx-xx)转化为年月日
java.sql.Time date=java.sql.Time.valueOf(date1)//date1是字符类型,将util中时间格式化得到的(格式必须为xx-xx-xx)转化为时分秒
java.sql.Timestamp date=java.sql.Timestamp.valueOf(date1)//date1是字符类型,将util中时间格式化得到的(格式必须为xxxx-xx-xx xx-xx-xx)转化为年月日时分秒
不懂得花可以查看j2se的api