1.如何拿到時間後格式化成我們自己想要的日期格式:
處理時候是從資料庫中拿出的日期:Date d = rs.getDate("pdate");
首先常用的包:java.lang java.util java.sql
在java.sql包下面有 類,類中的Date查找,裡面的方法都已經過時,
java.lang.Object
繼承者 java.util.Date
繼承者 java.sql.Date
找父類,看有沒有可用的方法java.util.Date
也是已經過時的,但是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是系統的目前時間,
我們的日期是從資料庫裡得到的。怎麼辦?
void setTime(Date date)
使用給定的 Date 設定此 Calendar 的時間。
Date d = rs.getDate("pdate");
Calendar c = Calendar.getInstance();
c.setTime(d);
System.out.println(c.get(Calendar.MONTH));```
總結下:分析問題就是,你得到的是Date類型的,api給你的是Calendar類型的才能用的方法,你得想辦法轉換
3.繼續SimpleDateFormat
Date d = rs.getDate("pdate");
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
System.out.println(sdf.format(d));```
列印出資料庫中日期的時間,分,秒。但是為啥列印出來是:
00:00:00
因為date類型沒有存時間的值,隻有日期的值(年,月,日)
那話說回來,到底用哪種類型去表示出完整的時間呢(年,月,日,時分秒)然後如何格式化?
4.從資料庫中拿到時間,如何顯示出完整的時間資訊(年月日時分秒)
Date d = rs.getDate("pdate");
你用getDate把資料庫中存放的時間以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下