======================================================
注:本文源代码点此下载
======================================================
1、如何将java.util.date转化为java.sql.date?
转化:
java.sql.date sd;
java.util.date ud;
//initialize the ud such as ud = new java.util.date();
sd = new java.sql.date(ud.gettime());
2、如果要插入到数据库并且相应的字段为date类型
那么可以用preparedstatement.setdate(int ,java.sql.date)方法
其中的java.sql.date可以用上面的方法得到
也可以用数据库提供to_date函数
比如 现有 ud
to_date(new simpledateformat().format(ud,"yyyy-mm-dd hh:mm:ss"),
"yyyy-mm-dd hh24:mi:ss")
注意java中表示格式和数据库提供的格式的不同
一个实际的例子
sql="update tablename set timer=to_date('"+t+"','yyyymmddhh24miss') where ....."
这里的t为变量为类似:20051211131223
3、如何将"yyyy-mm-dd"格式的字符串转换为java.sql.date
方法1
simpledateformat bartdateformat =
new simpledateformat("yyyy-mm-dd");
string datestringtoparse = "2007-7-12";
try {
java.util.date date = bartdateformat.parse(datestringtoparse);
java.sql.date sqldate = new java.sql.date(date.gettime());
system.out.println(sqldate.gettime());
}
catch (exception ex) {
system.out.println(ex.getmessage());
}
------------------------------------------------------------
方法2
stringstrdate="2002-08-09";
stringtokenizerst=newstringtokenizer(strdate,"-");
java.sql.datedate=newjava.sql.date(integer.parseint(st.nexttoken()),
integer.parseint(st.nexttoken()),
integer.parseint(st.nexttoken()));
java.util.date和java.sql.date的异同
java.sql.date,java.sql.time和java.sql.timestamp三个都是java.util.date的子类(包装类)。
但是为什么java.sql.date类型的值插入到数据库中date字段中会发生数据截取呢?
java.sql.date是为了配合sql date而设置的数据类型。“规范化”的java.sql.date只包含年月日信息,时分秒毫秒都会清零。格式类似:yyyy-mm-dd。当我们调用resultset的getdate()方法来获得返回值时,java程序会参照"规范"的java.sql.date来格式化数据库中的数值。因此,如果数据库中存在的非规范化部分的信息将会被劫取。
在sun提供的resultset.java中这样对getdate进行注释的:
retrieves the of the designated column in the current row of this resultset object as a “java.sql.date” object in the java programming language.
同理。如果我们把一个java.sql.date值通过preparestatement的setdate方法存入数据库时,java程序会对传入的java.sql.date规范化,非规范化的部分将会被劫取。然而,我们java.sql.date一般由java.util.date转换过来,如:java.sql.date sqldate=new java.sql.date(new java.util.date().gettime()).
显然,这样转换过来的java.sql.date往往不是一个规范的java.sql.date.要保存java.util.date的精确值,
我们需要利用java.sql.timestamp.
calendar
calendarcalendar=calendar.getinstance();
//获得当前时间,声明时间变量
intyear=calendar.get(calendar.year);
//得到年
intmonth=calendar.get(calendar.month);
//得到月,但是,月份要加上1
month=month+1;
intdate=calendar.get(calendar.date);
//获得日期
stringtoday=""+year+"-"+month+"-"+date+"";
======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/