天天看點

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

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下