整理一這裡的一片文章我個人認為講解的很詳細有對 javasqlDate的使用還有困惑的請看
javasqlDate 只存儲日期數據不存儲時間數據// 會丟失時間數據preparedStatementsetDate( new javasqlDate(dategetTime()))//可以這樣來處理preparedStatementsetTimestamp( new javasqlTimestamp(new javautilDate()getTime()))
//想要得到完整的數據包括日期和時間可以這樣javautilDate d = resultSetgetTimestamp()//這樣處理更合適一些可以避免一些潛在Timestamp 問題javautilDate d = new javautilDate(resultSetgetTimestamp()getTime())自己補的話這樣的話往數據庫存儲的時候可以接收 javautilDate類型 再用getTime()方法得到代表那個Date對象的long值再以這個long值 構造一個Timestamp對象 存進數據庫中
從存數據庫裡取的時候可以先得到Timestamp用他的getTime()方法得到long值再以這個long值構造一個 javautilDate對象這樣就可以對這個Date對象操作了不如說 new SimpleTimeFormat(yyyyyMMdd HHmmss)format()等等
整理二用Timestamp來記錄日期時間還是很方便的但有時候顯示的時候是不需要小數位後面的毫秒的這樣就需要在轉換為String時重新定義格式
Timestamp轉化為StringSimpleDateFormat df = new SimpleDateFormat(yyyyMMdd HHmmss)//定義格式不顯示毫秒 Timestamp now = new Timestamp(SystemcurrentTimeMillis())//獲取系統當前時間 String str = dfformat(now) 轉化為StringTimestampSimpleDateFormat df = new SimpleDateFormat(yyyyMMdd HHmmss)String time = dfformat(new Date()) Timestamp ts = TimestampvalueOf(time)整理三在 ResultSet中我們經常使用的setDate或getDate的數據類型是javasqlDate而在平時java程序中我們一般習慣使用 javautilDate因此在DAO層我們經常會碰到這倆種數據類型的相互轉換經過了一個下午的折騰鄙人對兩者的轉換方法做出了小小總結希望大家不吝指教
兩者的關系javalangObject | +——javautilDate | +——javasqlDate從這個圖中我們可以知道javasqlDate是從javautilDate繼承過來的
相互轉換 使用getTime()函數這兩個類都提供了getTime()函數用於返回對應的毫秒數(long類型)利用這個函數可以實現轉換javautilDate utilDate = new javautilDate(sqlDategetTime()) // sql > util javasqlDate sqlDate = new javasqlDate(utilDategetTime()) // util > sql 使用SimpleDateFormat類實現轉換SimpleDateFormat 是一個以國別敏感的方式格式化和分析數據的具體類 它允許格式化 (date > text)語法分析 (text > date)和標准化
SimpleDateFormat dateFormat = new SimpleDateFormate(yyyyMMdd HHmmss)javautilDate utilDate = dateFormatparse(sqlDatetoString()) 直接轉換由於javasqlDate是從javautilDate中繼承過來的所以可以直接用utilDate = sqlDate 另類獲得日期的方法SimpleDateFormat sy=new SimpleDateFormat(yyyy)SimpleDateFormat sm=new SimpleDateFormat(MM)SimpleDateFormat sd=new SimpleDateFormat(dd)String syear=syformat(date)String smon=smformat(date)String sday=sdformat(date)ps javautilDate類中的getYear()要加上才可得到實際值getMonth()則要加上
From:http://tw.wingwit.com/Article/program/Java/hx/201311/26212.html