




已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
java中的日期處理類總結(jié):Date/Calendar/GregorianCalendar/DateFormat/SimpleDateFormat類今天花了好大一點(diǎn)時(shí)間把java的日期類做了一下整理,哈1、 Date類(該類現(xiàn)在很少用了)l Date類對象的創(chuàng)建: n 創(chuàng)建一個(gè)當(dāng)前時(shí)間/默認(rèn)是創(chuàng)建一個(gè)代表系統(tǒng)當(dāng)前日期的Date對象 Date d = new Date();n 創(chuàng)建一個(gè)我們指定的時(shí)間的Date對象:下面是使用帶參數(shù)的構(gòu)造方法,可以構(gòu)造指定日期的Date類對象,Date類中年份的參數(shù)應(yīng)該是實(shí)際需要代表的年份減去1900,實(shí)際需要代表的月份減去1以后的值。/創(chuàng)建一個(gè)代表2009年6月12號(hào)的Date對象Date d1 = new Date(2009-1900, 6-1, 12); (注意參數(shù)的設(shè)置?。。﹍ 正確獲得一個(gè)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(); /獲得小時(shí) int hour = d2.getHours(); /獲得分鐘 int minute = d2.getMinutes(); /獲得秒 int second = d2.getSeconds(); /獲得星期 (注意:0代表星期日、1代表星期1、2代表星期2,其他的一次類推了) int day = d2.getDay();運(yùn)行結(jié)果:年份:2009月份:6日期:12小時(shí):0 /不設(shè)置默認(rèn)是0分鐘:0 /不設(shè)置默認(rèn)是0秒:0 /不設(shè)置默認(rèn)是0星期:5 /09-6-12今天就是星期5,又是一個(gè)星期天哦 2、 Calendar類Calendar類的功能要比Date類強(qiáng)大很多,而且在實(shí)現(xiàn)方式上也比Date類要復(fù)雜一些 l Calendar類對象的創(chuàng)建Calendar類是一個(gè)抽象類,在實(shí)際使用時(shí)實(shí)現(xiàn)特定的子類的對象。由于Calendar類是抽象類,且Calendar類的構(gòu)造方法是protected的,所以無法使用Calendar類的構(gòu)造方法來創(chuàng)建對象,API中提供了getInstance方法用來創(chuàng)建對象。 n 創(chuàng)建一個(gè)代表系統(tǒng)當(dāng)前日期的Calendar對象Calendar c = Calendar.getInstance();/默認(rèn)是當(dāng)前日期n 創(chuàng)建一個(gè)指定日期的Calendar對象使用Calendar類代表特定的時(shí)間,需要首先創(chuàng)建一個(gè)Calendar的對象,然后再設(shè)定該對象中的年月日參數(shù)來完成。/創(chuàng)建一個(gè)代表2009年6月12日的Calendar對象Calendar c1 = Calendar.getInstance();c1.set(2009, 6 - 1, 12); l Calendar類對象字段類型 Calendar類中用一下這些常量表示不同的意義,jdk內(nèi)的很多類其實(shí)都是采用的這種思想Calendar.YEAR年份Calendar.MONTH月份Calendar.DATE日期Calendar.DAY_OF_MONTH日期,和上面的字段意義完全相同Calendar.HOUR12小時(shí)制的小時(shí)Calendar.HOUR_OF_DAY24小時(shí)制的小時(shí)Calendar.MINUTE分鐘Calendar.SECOND秒Calendar.DAY_OF_WEEK星期幾 l Calendar類對象信息的設(shè)置與獲得n Calendar類對象信息的設(shè)置u Set設(shè)置如:Calendar c1 = Calendar.getInstance();調(diào)用:public final void set(int year,int month,int date)c1.set(2009, 6 - 1, 12);/把Calendar對象c1的年月日分別設(shè)這為:2009、6、12利用字段類型設(shè)置如果只設(shè)定某個(gè)字段,例如日期的值,則可以使用如下set方法:調(diào)用:public void set(int field,int value)/把 c1對象代表的日期設(shè)置為10號(hào),其它所有的數(shù)值會(huì)被重新計(jì)算c1.set(Calendar.DATE,10); /把c1對象代表的年份設(shè)置為2008年,其他的所有數(shù)值會(huì)被重新計(jì)算c1.set(Calendar.YEAR,2008); 其他字段屬性set的意義以此類推u Add設(shè)置Calendar c1 = Calendar.getInstance();/把c1對象的日期加上10,也就是c1所表的日期的10天后的日期,其它所有的數(shù)值會(huì)被重新計(jì)算c1.add(Calendar.DATE, 10); /把c1對象的日期加上10,也就是c1所表的日期的10天前的日期,其它所有的數(shù)值會(huì)被重新計(jì)算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);/ 獲得小時(shí)int hour = c1.get(Calendar.HOUR_OF_DAY);/ 獲得分鐘int minute = c1.get(Calendar.MINUTE);/ 獲得秒int second = c1.get(Calendar.SECOND);/ 獲得星期幾(注意(這個(gè)與Date類是不同的):1代表星期日、2代表星期1、3代表星期二,以此類推)int day = c1.get(Calendar.DAY_OF_WEEK); 3、 GregorianCalendar類GregorianCalendar 是 Calendar 的一個(gè)具體子類,提供了世界上大多數(shù)國家使用的標(biāo)準(zhǔn)日歷系統(tǒng)。GregorianCalendar類對象的創(chuàng)建GregorianCalendar有自己的構(gòu)造方法,而其父類Calendar沒有公開的構(gòu)造方法哦。GregorianCalendar() 在具有默認(rèn)語言環(huán)境的默認(rèn)時(shí)區(qū)內(nèi)使用當(dāng)前時(shí)間構(gòu)造一個(gè)默認(rèn)的 GregorianCalendar。 GregorianCalendar(int year, int month, int dayOfMonth) 在具有默認(rèn)語言環(huán)境的默認(rèn)時(shí)區(qū)內(nèi)構(gòu)造一個(gè)帶有給定日期設(shè)置的 GregorianCalendar。 GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute) 為具有默認(rèn)語言環(huán)境的默認(rèn)時(shí)區(qū)構(gòu)造一個(gè)具有給定日期和時(shí)間設(shè)置的 GregorianCalendar。 GregorianCalendar(int year, int month, int dayOfMonth, int hourOfDay, int minute, int second) 為具有默認(rèn)語言環(huán)境的默認(rèn)時(shí)區(qū)構(gòu)造一個(gè)具有給定日期和時(shí)間設(shè)置的 GregorianCalendar。 創(chuàng)建一個(gè)代表當(dāng)前日期的GregorianCalendar對象GregorianCalendar gc = new GregorianCalendar();/創(chuàng)建一個(gè)代表2009年6月12日的GregorianCalendar對象(注意參數(shù)設(shè)置哦,與其父類是一樣的哦,月份要減去1)GregorianCalendar gc = new GregorianCalendar(2009,6-1,12);字段屬性什么的都是隨其父Calendar了,呵另外:GregorianCalendar有下面一個(gè)方法:isLeapYear(int year) 確定給定的年份是否為閏年4、 DateFormat類DateFormat 是日期/時(shí)間格式化子類的抽象類,它以與語言無關(guān)的方式格式化并分析日期或時(shí)間。日期/時(shí)間格式化子類(如 SimpleDateFormat)允許進(jìn)行格式化(也就是日期 - 文本)、分析(文本- 日期)和標(biāo)準(zhǔn)化。將日期表示為 Date 對象,或者表示為從 GMT(格林尼治標(biāo)準(zhǔn)時(shí)間)1970 年,1 月 1 日 00:00:00 這一刻開始的毫秒數(shù)。 5、 SimpleDateFormat類public class SimpleDateFormat extends DateFormatSimpleDateFormat 是一個(gè)以與語言環(huán)境相關(guān)的方式來格式化和分析日期的具體類。它允許進(jìn)行格式化(日期 - 文本)、分析(文本 - 日期)和規(guī)范化。所以本類可以實(shí)現(xiàn):String 到 Date Date到String的互轉(zhuǎn),如下: SimpleDateFormat對象最常用的就是一下兩招了:/注意構(gòu)造函數(shù)中是SimpleDateFormat類解析日期的模式,大小寫代表的意義完全不一樣哦 SimpleDateFormat df = new SimpleDateFormat(yyyy-MM-dd hh:mm:ss); /日期到字符串的轉(zhuǎn)換 String today = df.format(new Date(); /字符串到日期的轉(zhuǎn)換 Date date = df.parse(2009-06-12 02:06:37); System.out.println(df.format(new Date(); 6、 日期類對象之間的互轉(zhuǎn)l Date類對象與long型時(shí)間的互轉(zhuǎn)/將Date類的對象轉(zhuǎn)換為long型時(shí)間Date d= new Date();/使用對象的getTime()方法完成long dLong = d.getTime(); /將long型時(shí)間轉(zhuǎn)換為Date類的對象long time = 1290876532190L;/使用Date的構(gòu)造方法完成Date d2 = new Date(time);l Calendar對象和long型時(shí)間之間的互轉(zhuǎn)/ 將Calendar對象轉(zhuǎn)換為相對時(shí)間Calendar c = Calendar.getInstance();long t1 = c.getTimeInMillis(); / 將相對時(shí)間轉(zhuǎn)換為Calendar對象Calendar c1 = Calendar.getInstance();long t = 1252785271098L;c1.setTimeInMillis(t1);l Calendar對象和Date對象之間的互轉(zhuǎn)/ 將Calendar對象轉(zhuǎn)換為相對時(shí)間Calendar c = Calendar.getInstance();Date d = c.getTime(); / 將相對時(shí)間轉(zhuǎn)換為Calendar對象Calendar c1 = Calendar.getInstance();Date d1 = new Date();/通過setTime()方法后,日歷c1所表示的日期就d1的日期c1.setTime(d1); 7、 Ok,利用以上各個(gè)類的功能,我們可以很簡單的實(shí)現(xiàn)一些時(shí)間計(jì)算的功能哦,呵呵,下面看幾個(gè)方法:l 判斷是否是閏年 /* * 給定一個(gè)年份判斷該年份是否為閏年 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 獲取當(dāng)前日期的字符串表示形式 /* * 利用SimpleDateFormat獲取當(dāng)前日期的字符串表示形式 格式:2009-55-05 * * create date:2009-6-5 author:Administrator * * return */ public static String getCurrentDate() / 注意 SimpleDateFormat(yyyy-MM-dd)的參數(shù)間隔符號(hào)可以隨意設(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 給出任意一個(gè)年月日得到該天是星期幾 /* * 給出任意一個(gè)年月日得到該天是星期幾 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(); / 這里也個(gè)用SimpleDateFormat的format()進(jìn)行格式化,然后以字符串形式返回格式化后的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)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 解除合同協(xié)議書去哪里拿
- 包車服務(wù)協(xié)議合同
- 商業(yè)借款協(xié)議合同
- 空調(diào)出租合同協(xié)議書簡單
- 作品評選活動(dòng)合同協(xié)議
- 變壓器搬遷協(xié)議合同書
- 拆除居間合同協(xié)議書范本
- 合同款項(xiàng)代收協(xié)議
- 冬奧會(huì)普京合同協(xié)議
- 共有土地協(xié)議合同
- 供應(yīng)鏈管理系統(tǒng)建設(shè)方案
- 瓶裝液化氣送氣工培訓(xùn)
- 【MOOC】中醫(yī)與辨證-暨南大學(xué) 中國大學(xué)慕課MOOC答案
- 零星維修工程 投標(biāo)方案(技術(shù)方案)
- 風(fēng)電制氫制甲醇一體化示范制氫制甲醇項(xiàng)目可行性研究報(bào)告寫作模板-申批立項(xiàng)
- 2024年教科版(廣州版)英語五年級(jí)上冊期中模擬測試卷(無答案)
- 2024年人力資源行業(yè)變革:人工智能在招聘中的應(yīng)用
- 2024-2030年中國玩偶行業(yè)發(fā)展前景預(yù)測及競爭力策略分析報(bào)告
- 上門按摩企業(yè)標(biāo)準(zhǔn)操作實(shí)務(wù)白皮書-愛尚往約企業(yè)標(biāo)準(zhǔn)開源手冊 2024
- 吉利并購沃爾沃績效分析
- DB11T 1028-2021 民用建筑節(jié)能門窗工程技術(shù)標(biāo)準(zhǔn)
評論
0/150
提交評論