java中的日期處理類總結.doc_第1頁
java中的日期處理類總結.doc_第2頁
java中的日期處理類總結.doc_第3頁
java中的日期處理類總結.doc_第4頁
java中的日期處理類總結.doc_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

java中的日期處理類總結:Date/Calendar/GregorianCalendar/DateFormat/SimpleDateFormat類今天花了好大一點時間把java的日期類做了一下整理,哈1、 Date類(該類現(xiàn)在很少用了)l Date類對象的創(chuàng)建: n 創(chuàng)建一個當前時間/默認是創(chuàng)建一個代表系統(tǒng)當前日期的Date對象 Date d = new Date();n 創(chuàng)建一個我們指定的時間的Date對象:下面是使用帶參數(shù)的構造方法,可以構造指定日期的Date類對象,Date類中年份的參數(shù)應該是實際需要代表的年份減去1900,實際需要代表的月份減去1以后的值。/創(chuàng)建一個代表2009年6月12號的Date對象Date d1 = new Date(2009-1900, 6-1, 12); (注意參數(shù)的設置啊!)l 正確獲得一個date對象所包含的信息如: Date d2 = new Date(2009-1900, 6-1, 12); /獲得年份 (注意年份要加上1900,這樣才是日期對象d2所代表的年份) int year = d2.getYear() + 1900; /獲得月份 (注意月份要加1,這樣才是日期對象d2所代表的月份) int month = d2.getMonth() + 1; /獲得日期 int date = d2.getDate(); /獲得小時 int hour = d2.getHours(); /獲得分鐘 int minute = d2.getMinutes(); /獲得秒 int second = d2.getSeconds(); /獲得星期 (注意:0代表星期日、1代表星期1、2代表星期2,其他的一次類推了) int day = d2.getDay();運行結果:年份:2009月份:6日期:12小時:0 /不設置默認是0分鐘:0 /不設置默認是0秒:0 /不設置默認是0星期:5 /09-6-12今天就是星期5,又是一個星期天哦 2、 Calendar類Calendar類的功能要比Date類強大很多,而且在實現(xiàn)方式上也比Date類要復雜一些 l Calendar類對象的創(chuàng)建Calendar類是一個抽象類,在實際使用時實現(xiàn)特定的子類的對象。由于Calendar類是抽象類,且Calendar類的構造方法是protected的,所以無法使用Calendar類的構造方法來創(chuàng)建對象,API中提供了getInstance方法用來創(chuàng)建對象。 n 創(chuàng)建一個代表系統(tǒng)當前日期的Calendar對象Calendar c = Calendar.getInstance();/默認是當前日期n 創(chuàng)建一個指定日期的Calendar對象使用Calendar類代表特定的時間,需要首先創(chuàng)建一個Calendar的對象,然后再設定該對象中的年月日參數(shù)來完成。/創(chuàng)建一個代表2009年6月12日的Calendar對象Calendar c1 = Calendar.getInstance();c1.set(2009, 6 - 1, 12); l Calendar類對象字段類型 Calendar類中用一下這些常量表示不同的意義,jdk內的很多類其實都是采用的這種思想Calendar.YEAR年份Calendar.MONTH月份Calendar.DATE日期Calendar.DAY_OF_MONTH日期,和上面的字段意義完全相同Calendar.HOUR12小時制的小時Calendar.HOUR_OF_DAY24小時制的小時Calendar.MINUTE分鐘Calendar.SECOND秒Calendar.DAY_OF_WEEK星期幾 l Calendar類對象信息的設置與獲得n Calendar類對象信息的設置u Set設置如:Calendar c1 = Calendar.getInstance();調用:public final void set(int year,int month,int date)c1.set(2009, 6 - 1, 12);/把Calendar對象c1的年月日分別設這為:2009、6、12利用字段類型設置如果只設定某個字段,例如日期的值,則可以使用如下set方法:調用:public void set(int field,int value)/把 c1對象代表的日期設置為10號,其它所有的數(shù)值會被重新計算c1.set(Calendar.DATE,10); /把c1對象代表的年份設置為2008年,其他的所有數(shù)值會被重新計算c1.set(Calendar.YEAR,2008); 其他字段屬性set的意義以此類推u Add設置Calendar c1 = Calendar.getInstance();/把c1對象的日期加上10,也就是c1所表的日期的10天后的日期,其它所有的數(shù)值會被重新計算c1.add(Calendar.DATE, 10); /把c1對象的日期加上10,也就是c1所表的日期的10天前的日期,其它所有的數(shù)值會被重新計算c1.add(Calendar.DATE, -10);其他字段屬性的add的意義以此類推n Calendar類對象信息的獲得Calendar c1 = Calendar.getInstance();/ 獲得年份int year = c1.get(Calendar.YEAR);/ 獲得月份int month = c1.get(Calendar.MONTH) + 1;/ 獲得日期int date = c1.get(Calendar.DATE);/ 獲得小時int hour = c1.get(Calendar.HOUR_OF_DAY);/ 獲得分鐘int minute = c1.get(Calendar.MINUTE);/ 獲得秒int second = c1.get(Calendar.SECOND);/ 獲得星期幾(注意(這個與Date類是不同的):1代表星期日、2代表星期1、3代表星期二,以此類推)int day = c1.get(Calendar.DAY_OF_WEEK); 3、 GregorianCalendar類GregorianCalendar 是 Calendar 的一個具體子類,提供了世界上大多數(shù)國家使用的標準日歷系統(tǒng)。GregorianCalendar類對象的創(chuàng)建GregorianCalendar有自己的構造方法,而其父類Calendar沒有公開的構造方法哦。GregorianCalendar() 在具有默認語言環(huán)境的默認時區(qū)內使用當前時間構造一個默認的 GregorianCalendar。 GregorianCalendar(int year, int month, int dayOfMonth) 在具有默認語言環(huán)境的默認時區(qū)內構造一個帶有給定日期設置的 GregorianCalendar。 GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute) 為具有默認語言環(huán)境的默認時區(qū)構造一個具有給定日期和時間設置的 GregorianCalendar。 GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute, int second) 為具有默認語言環(huán)境的默認時區(qū)構造一個具有給定日期和時間設置的 GregorianCalendar。 創(chuàng)建一個代表當前日期的GregorianCalendar對象GregorianCalendar gc = new GregorianCalendar();/創(chuàng)建一個代表2009年6月12日的GregorianCalendar對象(注意參數(shù)設置哦,與其父類是一樣的哦,月份要減去1)GregorianCalendar gc = new GregorianCalendar(2009,6-1,12);字段屬性什么的都是隨其父Calendar了,呵另外:GregorianCalendar有下面一個方法:isLeapYear(int year) 確定給定的年份是否為閏年4、 DateFormat類DateFormat 是日期/時間格式化子類的抽象類,它以與語言無關的方式格式化并分析日期或時間。日期/時間格式化子類(如 SimpleDateFormat)允許進行格式化(也就是日期 - 文本)、分析(文本- 日期)和標準化。將日期表示為 Date 對象,或者表示為從 GMT(格林尼治標準時間)1970 年,1 月 1 日 00:00:00 這一刻開始的毫秒數(shù)。 5、 SimpleDateFormat類public class SimpleDateFormat extends DateFormatSimpleDateFormat 是一個以與語言環(huán)境相關的方式來格式化和分析日期的具體類。它允許進行格式化(日期 - 文本)、分析(文本 - 日期)和規(guī)范化。所以本類可以實現(xiàn):String 到 Date Date到String的互轉,如下: SimpleDateFormat對象最常用的就是一下兩招了:/注意構造函數(shù)中是SimpleDateFormat類解析日期的模式,大小寫代表的意義完全不一樣哦 SimpleDateFormat df = new SimpleDateFormat(yyyy-MM-dd hh:mm:ss); /日期到字符串的轉換 String today = df.format(new Date(); /字符串到日期的轉換 Date date = df.parse(2009-06-12 02:06:37); System.out.println(df.format(new Date(); 6、 日期類對象之間的互轉l Date類對象與long型時間的互轉/將Date類的對象轉換為long型時間Date d= new Date();/使用對象的getTime()方法完成long dLong = d.getTime(); /將long型時間轉換為Date類的對象long time = 1290876532190L;/使用Date的構造方法完成Date d2 = new Date(time);l Calendar對象和long型時間之間的互轉/ 將Calendar對象轉換為相對時間Calendar c = Calendar.getInstance();long t1 = c.getTimeInMillis(); / 將相對時間轉換為Calendar對象Calendar c1 = Calendar.getInstance();long t = 1252785271098L;c1.setTimeInMillis(t1);l Calendar對象和Date對象之間的互轉/ 將Calendar對象轉換為相對時間Calendar c = Calendar.getInstance();Date d = c.getTime(); / 將相對時間轉換為Calendar對象Calendar c1 = Calendar.getInstance();Date d1 = new Date();/通過setTime()方法后,日歷c1所表示的日期就d1的日期c1.setTime(d1); 7、 Ok,利用以上各個類的功能,我們可以很簡單的實現(xiàn)一些時間計算的功能哦,呵呵,下面看幾個方法:l 判斷是否是閏年 /* * 給定一個年份判斷該年份是否為閏年 create date:2009-6-10 author:Administrator * * param year * return */ public static boolean isLeapYear(int year) GregorianCalendar calendar = new GregorianCalendar(); return calendar.isLeapYear(year); l 獲取當前日期的字符串表示形式 /* * 利用SimpleDateFormat獲取當前日期的字符串表示形式 格式:2009-55-05 * * create date:2009-6-5 author:Administrator * * return */ public static String getCurrentDate() / 注意 SimpleDateFormat(yyyy-MM-dd)的參數(shù)間隔符號可以隨意設置的,如: / yyyy年MM月dd日 返回格式:2009年06月09日 / yyyy-MM-dd 返回格式: 2009-06-09 / SimpleDateFormat dateFormat = new SimpleDateFormat( / yyyy-MM-dd HH:mm:ss); SimpleDateFormat dateFormat = new SimpleDateFormat(yyyy-MM-dd); return dateFormat.format(System.currentTimeMillis(); l 給出任意一個年月日得到該天是星期幾 /* * 給出任意一個年月日得到該天是星期幾 create date:2009-6-10 author:Administrator * * param date * 參數(shù)格式 2009-6-10 * 返回值:0 代表星期日,1代表星期1,2代表星期2,以此類推 */ public static int getWeek(String date) / 注意參數(shù)的大小寫格式 SimpleDateFormat dateFormat = new SimpleDateFormat(yyyyMMdd); Calendar c = Calendar.getInstance(); try Date d = dateFormat.parse(date); c.setTime(d); catch (ParseException e) return c.get(Calendar.DAY_OF_WEEK)-1; l 獲得今天n天以后或者n天以前是那一天 /* * 獲得距離今天n天的那一天的日期 create date:2009-6-11 author:Administrator * * param day * return */ public static String getDistanceDay(int day) Calendar calen = Calendar.getInstance(); calen.add(Calendar.DAY_OF_MONTH, day); Date date = calen.getTime(); / 這里也個用SimpleDateFormat的format()進行格式化,然后以字符串形式返回格式化后的date SimpleDateFormat dateFormat = new SimpleDateFormat(yyyy-MM-dd); return dateFormat.format(date); l 獲得距離指定日期n天的那一天的日期/* * 獲得距離指定日期n天的那一天的日期 create date:2009-6-11 author:Administrator * * param date * 格式:2009-6-11 * param day * return */ public static String getDistanceDay(String date, int day) SimpleDateFormat dateFormat = new SimpleDateFormat(yyyyMMdd); Date d; Calendar c =Calendar.getInstance(); try d = dateFormat.parse(date); c.setTime(d); c.add(Calendar.DATE, day); cat

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論