java日期處理專題:java 日期格式化

1.如何拿到時間后格式化成我們自己想要的日期格式:
處理時候是從數(shù)據(jù)庫中拿出的日期:Date d = rs.getDate("pdate");
首先常用的包:java.lang java.util java.sql
在java.sql包下面有 類,類中的Date查找,里面的方法都已經(jīng)過時,
java.lang.Object
繼承者 java.util.Date
繼承者 java.sql.Date
找父類,看有沒有可用的方法java.util.Date
也是已經(jīng)過時的,但是Calendar.get是可以用的,暫時我們不用...
在java api中用索引查找
DateFormat,SimpleDateFormat,他們在java.text包中
在代碼中:

Date d = rs.getDate("pdate");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
System.out.println(sdf.format(d));```

2.有了日期后,如何只拿月或者年或者日
java.util下的Calendar
獲得一個實例:
Calendar rightNow = Calendar.getInstance();

想用getMonth方法,要有Calendar對象,但是rightNow是系統(tǒng)的當(dāng)前時間,
我們的日期是從數(shù)據(jù)庫里得到的。怎么辦?
 void setTime(Date date) 
          使用給定的 Date 設(shè)置此 Calendar 的時間。 

Date d = rs.getDate("pdate");
Calendar c = Calendar.getInstance();
c.setTime(d);
System.out.println(c.get(Calendar.MONTH));```
總結(jié)下:分析問題就是,你得到的是Date類型的,api給你的是Calendar類型的才能用的方法,你得想辦法轉(zhuǎn)換

3.繼續(xù)SimpleDateFormat

Date d = rs.getDate("pdate");
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
System.out.println(sdf.format(d));```
打印出數(shù)據(jù)庫中日期的時間,分,秒。但是為啥打印出來是:
00:00:00
因為date類型沒有存時間的值,只有日期的值(年,月,日)
那話說回來,到底用哪種類型去表示出完整的時間呢(年,月,日,時分秒)然后如何格式化?

4.從數(shù)據(jù)庫中拿到時間,如何顯示出完整的時間信息(年月日時分秒)
Date d = rs.getDate("pdate");
你用getDate把數(shù)據(jù)庫中存放的時間以Date類型拿出來的,java.sql.Date類型只包含日期,沒有時間。java.sql.Time,有時間的。
java.util下的類Date 下有三個子類 Date,Time,Timestamp
java.sql下的ResultSet有返回Timestamp的方法
第一種方法:
rs.getTime("pdate")(時間拿到了)
第二種方法:很常用時間戳,Timestamp
java.sql ResultSet中有時間戳的方法返回

Timestamp ts = rs.getTimestamp("pdate");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.format(ts));```
Timestamp 是java.util.date的子類,子類的化也可以用simpledateformat類format下

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容