平時開發過程中肯定是要跟日期打交道的,基本上是任何系統都離不開日期,所以我來總結一下
Date,DateFormat,SimpleDateFormat,Calendar
Date類:
在java.util包下,類 Date 表示特定的瞬間,精確到毫秒。從 JDK 1.1 開始,應該使用 Calendar 類實現日期和時間字段之間轉換,使用 DateFormat 類來格式化和分析日期字符串。Date 中的相應方法已廢棄。所以Date主要用來生成時間(是網上見解,我也是這樣認為的)。
(1)Date有兩個構造方法:
(1)Date():分配 Date 對象並初始化此對象,以表示分配它的時間(精確到毫秒)。
(2)Date(long date)基本上沒用不用記。
eg:Date date=new Date(); System.out.println(date);輸出:Tue Jun 16 20:51:24 CST 2015
(2)Date常用方法:
boolean after(Date when) 測試此日期是否在指定日期之后 (
沒什么用我感覺) boolean before(Date when) 測試此日期是否在指定日期之前
int compareTo(Date anotherDate) 比較兩個日期的順序
DateFormat類:
在java.text包下,DateFormat 是日期/時間格式化子類的抽象類,它以與語言無關的方式格式化並解析日期或時間。很多java培訓的視頻里面都講過,這個類是抽象類,所以不能構造方法來實例化,可以用getDateInstance()和getDateTimeInstance()這兩個靜態函數來進行實例化。這兩個的區別是一個返回的是日期,一個返回的是日期+時間.同時,getDateInstance(int style),getDateInstance(int style, Locale aLocale)等方法也挺好用的。關於style值:
FULL: 長度最長 比如:2013年1月9日 星期三 LONG: 長度更長 比如:January 9, 2013
MEDIUM:長度比SHORT長 比如:Jan 9,2013 SHORT: 完全為數字,比如:13/1/9
eg:DateFormat d1=DateFormat.getDateInstance();
DateFormat d2=DateFormat.getDateTimeInstance();
String s1=d1.format(new Date());
String s2=d2.format(new Date()); 輸出:2015-6-16
System.out.println(s1); 2015-6-16 21:05:22
System.out.println(s2);
eg1:DateFormat d1=DateFormat.getDateInstance(DateFormat.LONG); 輸出:2015年6月16日
3、
在java.text包下,它是DateFormat類的直接子類,繼承DateFormat類。我是這么理解SimpleDateFormat類的,它相對於Datef類更接地氣,你可以隨意給他指定一個形式的日期,進行更改。SimpleDateFormat類主要功能是完成日期之間格式的轉換,而且在轉換過程中需要采用如下步驟:1.指定一個模板,並根據這個模板,取出第一個所有的時間數字。2.所有的時間數字將采用Date類保存。3.將所有的時間數字重新進行格式轉換。模板如下表,注意區分大小寫
日期 | 模板 | 描述 |
年 | Y | 表示年:yyyy |
月 | M | 表示月:MM |
日 | d | 表示日:dd |
時 | HH | 表示時:HH |
分 | mm | 表示分:mm |
秒 | ss | 表示秒:ss |
毫秒 | S | 毫秒:SSS |
eg:SimpleDateFormat sdf=new SimpleDateFormat("y年M月d日 HH:mm:ss D"); //也可以是"yyyy年MM月dd日
System.out.println(sdf.format(new Date())); 輸出:2015年6月16日 21:39:10 167
4、
在java.util包下,Calendar 類是一個抽象類,它為“特定瞬間”與一組諸如 “YEAR”、
“MONTH”、“DAY_OF_MONTH”、“HOUR ”等日歷字段之間的轉換提供了一些方法,並為操作日歷字段(例如獲得下星期的日期)提供了一些方法。Calendar實例化有兩種方式,第一種是 Calendar nowTime = new GregorianCalendar();,第二種是Calendar calendar=Calendar.getInstance();
eg:Calendar c=Calendar.getInstance();
System.out.println(c.get(Calendar.YEAR)+"年"+(c.get(Calendar.MONTH)+1)+"月"+
c.get(Calendar.DATE)+"日"+c.get(Calendar.HOUR)+"點"); // 輸出:2015年6月16日9點
(1)常用的方法:
add(int date,int num);//返回num前后的日期//date表示日期字段,num表示添加的天數;
get(int date);//通過獲取字段,返回具體的信息;