Java中Date,Calendar,Timestamp的區(qū)別以及相互轉(zhuǎn)換與使用
1 Java.util.Date
包含年、月、日、時(shí)、分、秒信息。
// String轉(zhuǎn)換為Date
String dateStr="2013-8-13 23:23:23";
String pattern="yyyy-MM-dd HH:mm:ss";
DateFormate dateFormat=new SimpleDateFormat(pattern);
Date date=dateFormat.parse(dateStr);
date=dateFormat.format(date);
2 Java.sql.Date
包含年、月、日信息。
繼承自java.util.Date。在數(shù)據(jù)庫(kù)相關(guān)操作中使用,如rs.getDate,ps.setDate等。rs是指ResultSet,ps是指PreparedStatement。
// java.util.Date轉(zhuǎn)換為java.sql.Date
new java.sql.Date(utilDate.getTime());// 其中utilDate為java.util.Date類型的對(duì)象
3 Java.util.Calendar
包含年、月、日、時(shí)、分、秒、毫秒信息。
JDK1.1引入,用以代替java.util.Date。
// Date轉(zhuǎn)為Calendar
Date date=new Date();
Calendar calendar=Calendar.getInstance();
calendar.setTime(date);
// Calendar轉(zhuǎn)為Date
Calendar ca=Calendar.getInstance();
Date d =(Date) ca.getTime();
4 Java.sql.Timestamp
包含年、月、日、時(shí)、分、秒、納秒(nano)信息。
繼承自java.util.Date。比java.sql.Date包含更多信息。在數(shù)據(jù)庫(kù)相關(guān)操作中使用,如rs.getTimestamp,ps.setTimeStamp等。例如:若數(shù)據(jù)庫(kù)中某字段hireDate為Oracle的Date類型,則使用getTimestamp時(shí)能夠?qū)⒛辍⒃?、日、時(shí)、分、秒信息取出;但使用getDate時(shí)則只能取出年、月、日信息。因此,一般推薦使用getTimestamp。
// java.util.Calendar轉(zhuǎn)換為java.sql.Timestamp
new Timestamp(Calendar.getInstance().getTimeInMillis());
// java.util.Date轉(zhuǎn)換為java.sql.Timestamp
new Timestamp(date.getTime());
// String轉(zhuǎn)換為java.sql.Timestamp,String格式:yyyy-mm-dd hh:mm:ss[.f...] ,方括號(hào)表示可選
Timestamp.valueOf("2013-07-06 01:49:30");
5 Oracle數(shù)據(jù)庫(kù)提供的日期和時(shí)間類型
Oracle數(shù)據(jù)庫(kù)提供了DATE,TIMESTAMP,TIMESTAMP WITH TIME ZONE和TIMESTAMP WITH LOCAL TIME ZONE四種類型。
DATE包含世紀(jì)、年、月、日、時(shí)、分、秒信息。
TIMESTAMP是DATE的擴(kuò)展,包含年、月、日、時(shí)、分、秒和fractional seconds信息。定義TIMESTAMP的格式如下:
TIMESTAMP [(fractional_seconds_precision)]
// 格式
TIMESTAMP 'YYYY-MM-DD HH24:MI:SS.FF'
// 一個(gè)例子
TIMESTAMP '1997-01-31 09:26:50.12'
其中fractional_seconds_precision是可選的,用于指定秒使用含幾位小數(shù)的浮點(diǎn)數(shù)表示,它的取值范圍是0到9,默認(rèn)是6。上述例子中表示采用兩位小數(shù),它的秒值是50.12。注意:12不是毫秒值,也不是微秒值。
相關(guān)文章
Maven環(huán)境安裝配置和新建項(xiàng)目介紹
這篇文章介紹了Maven環(huán)境安裝配置和新建項(xiàng)目介紹,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-12-12基于Java實(shí)現(xiàn)多線程下載并允許斷點(diǎn)續(xù)傳
這篇文章主要介紹了基于Java實(shí)現(xiàn)多線程下載并允許斷點(diǎn)續(xù)傳,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03ThreadPoolExecutor中的submit()方法詳細(xì)講解
在使用線程池的時(shí)候,發(fā)現(xiàn)除了execute()方法可以執(zhí)行任務(wù)外,還發(fā)現(xiàn)有一個(gè)方法submit()可以執(zhí)行任務(wù),本文就詳細(xì)的介紹一下ThreadPoolExecutor中的submit()方法,具有一定的參考價(jià)值,感興趣的可以了解一下2022-04-04