java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp區(qū)別和總結(jié)
java.lang.Object
....|__java.util.Date
..........|__java.sql.Date/java.sql.Timestamp /java.sql.Time
【父類】java.util.Date日期格式為:年月日時分秒
【子類】java.sql.Date日期格式為:年月日[只存儲日期數(shù)據(jù)不存儲時間數(shù)據(jù)]
【子類】java.sql.Time日期格式為:時分秒
【子類】java.sql.Timestamp日期格式為:年月日時分秒納秒(毫微秒)
針對不同的數(shù)據(jù)庫選用不同的日期類型
·Oracle的Date類型,只需要年月日,選擇使用java.sql.Date類型
·MS Sqlserver數(shù)據(jù)庫的DateTime類型,需要年月日時分秒,選擇java.sql.Timestamp類型
------------------------------------------
四種對象內(nèi)部均使用系統(tǒng)時間作為標(biāo)準(zhǔn)數(shù)據(jù)
·系統(tǒng)時間:自 1970 年 1 月 1 日 00:00:00 GMT 以來的毫秒數(shù),即格林尼治標(biāo)準(zhǔn)時間(GMT)
·本地時間:根據(jù)時區(qū)不同打印出來的時間[當(dāng)時區(qū)為GMT+0時,系統(tǒng)時間與本地時間相同]
我們使用的是以本地時間為參考標(biāo)準(zhǔn)的
------------------------------------------
String日期格式轉(zhuǎn)換成Date日期格式
import java.text.ParseException;
import java.text.SimpleDateFormat;
public class a {
//主函數(shù)
public static void main(String[] args)
{
//java.util.Date時間格式的轉(zhuǎn)換
SimpleDateFormat f_utilDate=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String str="2011-5-31 14:40:50";
try {
java.util.Date utilDate=f_utilDate.parse(str);
System.out.println(f_utilDate.format(utilDate));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//java.sql.Date時間格式的轉(zhuǎn)換
SimpleDateFormat f_sqlDate=new SimpleDateFormat("yyyy-MM-dd");
java.sql.Date sqlDate = java.sql.Date.valueOf("2010-08-20");
System.out.println(f_sqlDate.format(sqlDate));
//java.sql.Time sqltime時間格式的轉(zhuǎn)換
SimpleDateFormat f_sqlTime=new SimpleDateFormat("hh:mm:ss");
java.sql.Time sqltime = java.sql.Time.valueOf("13:44:53");
System.out.println(f_sqlTime.format(sqltime));
//java.sql.Timestamp時間格式的轉(zhuǎn)換
SimpleDateFormat f_timestamp=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS");
java.sql.Timestamp timestamp = java.sql.Timestamp.valueOf("2010-08-20 14:06:27.186");
System.out.println(f_timestamp.format(timestamp));
}
}
*******************************************************************************
//java.util.Date 轉(zhuǎn)換成 java.sql.Date 格式
try{
SimpleDateFormat DateFormate = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
java.util.Date date1 = DateFormate.parse("2011-5-31 14:40:50");
java.sql.Date sqlDate = new java.sql.Date(date1.getTime());
System.out.println(DateFormate.format(sqlDate));
}catch (Exception ex) {
System.out.println(ex.getMessage());
}
//java.sql.Date 轉(zhuǎn)換成 java.util.Date 格式
java.sql.Date sqlDate1=java.sql.Date.valueOf("2005-12-12");
java.util.Date utilDate1=new java.util.Date(sqlDate1.getTime());
System.out.println("java.sql.Date 轉(zhuǎn)換成 java.util.Date 格式:"+f.format(utilDate1));
//java.util.Date轉(zhuǎn)換java.sql.Timestamp
new java.sql.Timestamp(new java.util.Date().getTime());//此處IDE報錯
//java.util.Date轉(zhuǎn)換java.sql.Time
new java.sql.Time(new java.util.Date().getTime());
Timestamp timestamp = new Timestamp(System.currentTimeMillis());
我們可以使用DateFormat處理字符串來定義時間日期的格式
注:String都是先轉(zhuǎn)換為java.util.Date,然后再轉(zhuǎn)換成所需的格式
示例:
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Locale;
import com.sun.org.apache.xerces.internal.impl.xpath.regex.ParseException;
public class a {
public static void main(String[] args) throws ParseException{
try{
String dateString = "2010-08-20 12:00:00.125";
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss.SSS",Locale.ENGLISH);//設(shè)定格式
dateFormat.setLenient(false);
java.util.Date utilDate = dateFormat.parse(dateString);//util類型
java.sql.Timestamp dateTime = new java.sql.Timestamp(utilDate.getTime());//Timestamp類型,timeDate.getTime()返回一個long型
System.out.println(dateTime);
}catch(Exception ex){
ex.printStackTrace();
}
}
}
|