Java.util.Date类型的转化成为数据库中的Date类型。
最完整的一個網(wǎng)頁:http://www.zxbc.cn/html/20080905/65272.html
?
| 作者:天涯 來源:中國自學(xué)編程網(wǎng) 發(fā)布日期:1220576012 | ||||||
| 而在java.sql.Date 和 java.util.Date之間,有些微妙的關(guān)系。 如何將Date類型插入數(shù)據(jù)庫中,成為好多人的一個不小的障礙。 當(dāng)然,并不一定要在外部插入時間,因?yàn)樵跀?shù)據(jù)庫中,可以讓它自動插入,比如:MSSQL里面,用getdate()來插入當(dāng)前時間,而在Insert時,便可以不用管它了。但有的時候還是避免不了,要手工插入時間,以更新數(shù)據(jù)庫。 1、java.util.Calendar 格式化時間 Calendar cal = new GregorianCalendar(); int year = cal.get(Calendar.YEAR); int month = cal.get(Calendar.MONTH)+1; int day = cal.get(Calendar.DAY_OF_MONTH); int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK); String week = ""; switch(dayOfWeek) { case 1: week = "星期天"; break; case 2: week = "星期一"; break; case 3: week = "星期二"; break; case 4: week = "星期三"; break; case 5: week = "星期四"; break; case 6: week = "星期五"; break; default: week = "星期六"; break; int hour = cal.get(Calendar.HOUR_OF_DAY); // 24小時制 // int hour = cal.get(Calendar.HOUR); // 12小時制 int minute = cal.get(Calendar.MINUTE); int second = cal.get(Calendar.SECOND); String h,m,s; if(hour<10) h = "0"+hour; else h = hour+""; if(minute<10) m = "0"+minute; else m = minute+""; if(second<10) s = "0"+second; else s = second+""; 在JSP中輸出是: 今天是: <%=year%>年<%=month%>月<%=day%>日<%=week%> <%=h%>:<%=m%>:<%=s%> 結(jié)果: 今天是: 2006年4月14日星期五 05:35:26 2、在數(shù)據(jù)庫中插入時間 PreparedStatement ps = con.prepareStatement("insert into TableName(dAddTime) values(?)"); 這里有三種方式: 1) ps.setDate(1,new java.sql.Date(System.currentTimemillis())); 2) ps.setTime(2,new java.sql.Time(System.currentTimemillis())); 3) ps.setTimestamp(3,new java.sql.Timestamp(System.currentTimemillis())); 第一種只插入年月日 0000-00-00 第二種只插入時間 00:00:00 第三種則插入完整的時間 0000-00-00 00:00:00.000 .000是毫秒數(shù)。 3、取出數(shù)據(jù)庫時間 通常只有兩種: 1) getDate(String colname); // 取出日期 格式:0000-00-00 2) getTimestamp(String colname); // 取出日期和時間 格式:0000-00-00 00:00:00.000 3) getTime(String colname); // 只取出時間部份 格式:00:00:00 幾乎不用,因?yàn)闆]有人只會取出時間,而不用日期。 | ||||||
| ||||||
| ||||||
?
?
方法1
SimpleDateFormat?s?=?new?SimpleDateFormat("yyyy/MM/dd");????????? Date?d?=?s.parse("1987/01/13");??java.sql.Date date = new java.sql.Date(d.getTime());
?
String dateStr = "2009-11-21";
java.sql.Date date = new java.sql.Date();
date.valueOf(dataStr);
?
?
?
首先加入import java.util.Date頭文件
然后用
darr.setsDate(rs.getTimestamp("存儲時間"));
獲取準(zhǔn)確的時分秒時間,而后進(jìn)行轉(zhuǎn)換
new SimpleDateFormat("yyyy-MM-dd HH:mm:ss ").format(dArr.getsDate())
將其轉(zhuǎn)換為24小時進(jìn)制的年月日時分秒數(shù)據(jù)即可!對于12小時的只需要將上句改為:
new SimpleDateFormat("yyyy-MM-dd hh:mm:ss ").format(dArr.getsDate())
即可
已經(jīng)過測試成功讀取:2012-05-23 16:26:54
?
?
?
測試數(shù)據(jù)庫:
/*
SQLyog Ultimate - MySQL GUI v8.2
MySQL - 5.1.55-community
*********************************************************************
*/
/*!40101 SET NAMES utf8 */;
create table `datedemo` (
?`id` varchar (96),
?`datedemo` timestamp
);
?
?
package cn.itcast.utils;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.commons.dbutils.QueryRunner;
import org.junit.Test;
public class DaoDemo {
?@SuppressWarnings("static-access")
?@Test
?public void testDateOperation() throws Exception {
??QueryRunner runner = new QueryRunner(new JdbcUtils().getDataSource());
??
??String sql = "insert into datedemo(id,datedemo) values(?,?)";
??String dateString = "2009-10-01 05:35:26";
??SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
??//SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
??Date date = simpleDateFormat.parse(dateString);
??runner.update(sql,new Object[]{"1",new java.sql.Timestamp(date.getTime())});
??//runner.update(sql,new Object[]{"1",new java.sql.Time(date.getTime())});
??//runner.update(sql,new Object[]{"1",new java.sql.Date(date.getTime())});
?}
}
總結(jié)
以上是生活随笔為你收集整理的Java.util.Date类型的转化成为数据库中的Date类型。的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一年定期存款利率多少
- 下一篇: 贷款150万30年月供多少