java.util.Date:表示特定的瞬間,精確到毫秒。在JDK1.1之前,用於把日期解釋為年、月、日、小時、分鐘、秒值,不過它的函數不易於國際化。所以從JDK1.1開始,使用Calendar類實現日期和時間欄位之間的轉換,使用DateFormat類來格式化和解析日期文字。void setTime(long time):設定此Date對象。
java.util.Calendar:是一個抽象類別,它為特定瞬間與一組諸如YEAR、MONTH、DAY_OF_MONTH、HOUR等日曆欄位之間的轉換提供了一些方法,並為操作日曆欄位(例如:獲得下星期的日期)提供了一些方法。執行個體化Calendar使用:Calendar rightNow=Calendar.getInstance();。常用的子類是GregorianCalendar。
java.text.DateFormat:是日期/時間格式化子類(例如:SimpleDateFormat)的抽象類別,它以與語言無關的方式格式化並解析日期或時間
java.text.SimpleDateFormat:是一個與語言環境有關的方式來格式化和解析日期的具體類,日期/時間格式化子類,運行進行格式化(即:日期->文本)、解析(文本->日期)和標準化。主要方法:Date parse(String text,ParsePosition pos):解析字串的文本,產生Date。
Calendar calendar=Calendar.getInstance();//靜態方法初始化
calendar.setTime(date);//這個方法用於將Date對象傳遞進來
下面方法用於得到Date的各種attributes:
int year=calendar.get(Calendar.YEAR);
int month=calendar.get(Calendar.MONTH)+1;//不要忘了加1
int day=calendar.get(Calendar.DAY);//這裡還有DAY_OF_MONTH,注意區分
另一種用法是改變Date:
calendar.set(field,value); //把某個域設定給定值,注意在調用get前不生效
calendar.add(field,delta); //用來加一天或者減一年,立即生效
calendar.roll(field,delta);//和add的區別是larger field不會改變,一般用add
date=calendar.getTime(); //成功後得到改變後的Date
SimpleDateFormat就是為了在String和Date之間轉換而存在的。
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
從String到Date:
Date date=df.parse(String dateString); //throws parseException
Date一般是從1970-01-01 00:00:00(格林尼治0時)到現在的ms數表示時間。
Date date=new Date();
int time=date.getTime(); //一般用來相減,可得到精確到ms的時間差
boolean isEqual=date.equals(anotherDate);//判斷兩個時間是不是相等
date.compareTo(anotherDate);