1.如何拿到時(shí)間后格式化成我們自己想要的日期格式:
處理時(shí)候是從數(shù)據(jù)庫(kù)中拿出的日期:Date d = rs.getDate("pdate");
首先常用的包:java.lang java.util java.sql
在java.sql包下面有 類,類中的Date查找,里面的方法都已經(jīng)過(guò)時(shí)秧秉,
java.lang.Object
繼承者 java.util.Date
繼承者 java.sql.Date
找父類镀脂,看有沒有可用的方法java.util.Date
也是已經(jīng)過(guò)時(shí)的,但是Calendar.get是可以用的灼卢,暫時(shí)我們不用...
在java api中用索引查找
DateFormat畔裕,SimpleDateFormat,他們?cè)趈ava.text包中
在代碼中:
Date d = rs.getDate("pdate");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
System.out.println(sdf.format(d));```
2.有了日期后撰糠,如何只拿月或者年或者日
java.util下的Calendar
獲得一個(gè)實(shí)例:
Calendar rightNow = Calendar.getInstance();
想用getMonth方法瞬痘,要有Calendar對(duì)象故慈,但是rightNow是系統(tǒng)的當(dāng)前時(shí)間,
我們的日期是從數(shù)據(jù)庫(kù)里得到的框全。怎么辦察绷?
void setTime(Date date)
使用給定的 Date 設(shè)置此 Calendar 的時(shí)間。
Date d = rs.getDate("pdate");
Calendar c = Calendar.getInstance();
c.setTime(d);
System.out.println(c.get(Calendar.MONTH));```
總結(jié)下:分析問(wèn)題就是竣况,你得到的是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ù)庫(kù)中日期的時(shí)間丹泉,分,秒鸭蛙。但是為啥打印出來(lái)是:
00:00:00
因?yàn)閐ate類型沒有存時(shí)間的值摹恨,只有日期的值(年,月娶视,日)
那話說(shuō)回來(lái)晒哄,到底用哪種類型去表示出完整的時(shí)間呢(年睁宰,月,日寝凌,時(shí)分秒)然后如何格式化柒傻?
4.從數(shù)據(jù)庫(kù)中拿到時(shí)間,如何顯示出完整的時(shí)間信息(年月日時(shí)分秒)
Date d = rs.getDate("pdate");
你用getDate把數(shù)據(jù)庫(kù)中存放的時(shí)間以Date類型拿出來(lái)的较木,java.sql.Date類型只包含日期红符,沒有時(shí)間。java.sql.Time伐债,有時(shí)間的预侯。
java.util下的類Date 下有三個(gè)子類 Date,Time峰锁,Timestamp
java.sql下的ResultSet有返回Timestamp的方法
第一種方法:
rs.getTime("pdate")(時(shí)間拿到了)
第二種方法:很常用時(shí)間戳萎馅,Timestamp
java.sql ResultSet中有時(shí)間戳的方法返回
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下