已閱讀5頁(yè),還剩9頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
java中的日期處理類總結(jié):Date/Calendar/GregorianCalendar/DateFormat/SimpleDateFormat類今天花了好大一點(diǎn)時(shí)間把java的日期類做了一下整理,哈1、 Date類(該類現(xiàn)在很少用了)l Date類對(duì)象的創(chuàng)建: n 創(chuàng)建一個(gè)當(dāng)前時(shí)間/默認(rèn)是創(chuàng)建一個(gè)代表系統(tǒng)當(dāng)前日期的Date對(duì)象 Date d = new Date();n 創(chuàng)建一個(gè)我們指定的時(shí)間的Date對(duì)象:下面是使用帶參數(shù)的構(gòu)造方法,可以構(gòu)造指定日期的Date類對(duì)象,Date類中年份的參數(shù)應(yīng)該是實(shí)際需要代表的年份減去1900,實(shí)際需要代表的月份減去1以后的值。/創(chuàng)建一個(gè)代表2009年6月12號(hào)的Date對(duì)象Date d1 = new Date(2009-1900, 6-1, 12); (注意參數(shù)的設(shè)置?。。﹍ 正確獲得一個(gè)date對(duì)象所包含的信息如: Date d2 = new Date(2009-1900, 6-1, 12); /獲得年份 (注意年份要加上1900,這樣才是日期對(duì)象d2所代表的年份) int year = d2.getYear() + 1900; /獲得月份 (注意月份要加1,這樣才是日期對(duì)象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類對(duì)象的創(chuàng)建Calendar類是一個(gè)抽象類,在實(shí)際使用時(shí)實(shí)現(xiàn)特定的子類的對(duì)象。由于Calendar類是抽象類,且Calendar類的構(gòu)造方法是protected的,所以無(wú)法使用Calendar類的構(gòu)造方法來(lái)創(chuàng)建對(duì)象,API中提供了getInstance方法用來(lái)創(chuàng)建對(duì)象。 n 創(chuàng)建一個(gè)代表系統(tǒng)當(dāng)前日期的Calendar對(duì)象Calendar c = Calendar.getInstance();/默認(rèn)是當(dāng)前日期n 創(chuàng)建一個(gè)指定日期的Calendar對(duì)象使用Calendar類代表特定的時(shí)間,需要首先創(chuàng)建一個(gè)Calendar的對(duì)象,然后再設(shè)定該對(duì)象中的年月日參數(shù)來(lái)完成。/創(chuàng)建一個(gè)代表2009年6月12日的Calendar對(duì)象Calendar c1 = Calendar.getInstance();c1.set(2009, 6 - 1, 12); l Calendar類對(duì)象字段類型 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類對(duì)象信息的設(shè)置與獲得n Calendar類對(duì)象信息的設(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對(duì)象c1的年月日分別設(shè)這為:2009、6、12利用字段類型設(shè)置如果只設(shè)定某個(gè)字段,例如日期的值,則可以使用如下set方法:調(diào)用:public void set(int field,int value)/把 c1對(duì)象代表的日期設(shè)置為10號(hào),其它所有的數(shù)值會(huì)被重新計(jì)算c1.set(Calendar.DATE,10); /把c1對(duì)象代表的年份設(shè)置為2008年,其他的所有數(shù)值會(huì)被重新計(jì)算c1.set(Calendar.YEAR,2008); 其他字段屬性set的意義以此類推u Add設(shè)置Calendar c1 = Calendar.getInstance();/把c1對(duì)象的日期加上10,也就是c1所表的日期的10天后的日期,其它所有的數(shù)值會(huì)被重新計(jì)算c1.add(Calendar.DATE, 10); /把c1對(duì)象的日期加上10,也就是c1所表的日期的10天前的日期,其它所有的數(shù)值會(huì)被重新計(jì)算c1.add(Calendar.DATE, -10);其他字段屬性的add的意義以此類推n Calendar類對(duì)象信息的獲得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ù)國(guó)家使用的標(biāo)準(zhǔn)日歷系統(tǒng)。GregorianCalendar類對(duì)象的創(chuàng)建GregorianCalendar有自己的構(gòu)造方法,而其父類Calendar沒(méi)有公開(kāi)的構(gòu)造方法哦。GregorianCalendar() 在具有默認(rèn)語(yǔ)言環(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)語(yǔ)言環(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)語(yǔ)言環(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)語(yǔ)言環(huán)境的默認(rèn)時(shí)區(qū)構(gòu)造一個(gè)具有給定日期和時(shí)間設(shè)置的 GregorianCalendar。 創(chuàng)建一個(gè)代表當(dāng)前日期的GregorianCalendar對(duì)象GregorianCalendar gc = new GregorianCalendar();/創(chuàng)建一個(gè)代表2009年6月12日的GregorianCalendar對(duì)象(注意參數(shù)設(shè)置哦,與其父類是一樣的哦,月份要減去1)GregorianCalendar gc = new GregorianCalendar(2009,6-1,12);字段屬性什么的都是隨其父Calendar了,呵另外:GregorianCalendar有下面一個(gè)方法:isLeapYear(int year) 確定給定的年份是否為閏年4、 DateFormat類DateFormat 是日期/時(shí)間格式化子類的抽象類,它以與語(yǔ)言無(wú)關(guān)的方式格式化并分析日期或時(shí)間。日期/時(shí)間格式化子類(如 SimpleDateFormat)允許進(jìn)行格式化(也就是日期 - 文本)、分析(文本- 日期)和標(biāo)準(zhǔn)化。將日期表示為 Date 對(duì)象,或者表示為從 GMT(格林尼治標(biāo)準(zhǔn)時(shí)間)1970 年,1 月 1 日 00:00:00 這一刻開(kāi)始的毫秒數(shù)。 5、 SimpleDateFormat類public class SimpleDateFormat extends DateFormatSimpleDateFormat 是一個(gè)以與語(yǔ)言環(huán)境相關(guān)的方式來(lái)格式化和分析日期的具體類。它允許進(jìn)行格式化(日期 - 文本)、分析(文本 - 日期)和規(guī)范化。所以本類可以實(shí)現(xiàn):String 到 Date Date到String的互轉(zhuǎn),如下: SimpleDateFormat對(duì)象最常用的就是一下兩招了:/注意構(gòu)造函數(shù)中是SimpleDateFormat類解析日期的模式,大小寫(xiě)代表的意義完全不一樣哦 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、 日期類對(duì)象之間的互轉(zhuǎn)l Date類對(duì)象與long型時(shí)間的互轉(zhuǎn)/將Date類的對(duì)象轉(zhuǎn)換為long型時(shí)間Date d= new Date();/使用對(duì)象的getTime()方法完成long dLong = d.getTime(); /將long型時(shí)間轉(zhuǎn)換為Date類的對(duì)象long time = 1290876532190L;/使用Date的構(gòu)造方法完成Date d2 = new Date(time);l Calendar對(duì)象和long型時(shí)間之間的互轉(zhuǎn)/ 將Calendar對(duì)象轉(zhuǎn)換為相對(duì)時(shí)間Calendar c = Calendar.getInstance();long t1 = c.getTimeInMillis(); / 將相對(duì)時(shí)間轉(zhuǎn)換為Calendar對(duì)象Calendar c1 = Calendar.getInstance();long t = 1252785271098L;c1.setTimeInMillis(t1);l Calendar對(duì)象和Date對(duì)象之間的互轉(zhuǎn)/ 將Calendar對(duì)象轉(zhuǎn)換為相對(duì)時(shí)間Calendar c = Calendar.getInstance();Date d = c.getTime(); / 將相對(duì)時(shí)間轉(zhuǎn)換為Calendar對(duì)象Calendar c1 = Calendar.getInstance();Date d1 = new Date();/通過(guò)setTime()方法后,日歷c1所表示的日期就d1的日期c1.setTime(d1); 7、 Ok,利用以上各個(gè)類的功能,我們可以很簡(jiǎn)單的實(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ù)的大小寫(xiě)格式 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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年首期款全付房產(chǎn)買(mǎi)賣(mài)合同書(shū)3篇
- 二零二五版?zhèn)€人信用重建借款委托擔(dān)保合同3篇
- 二零二五版包裝行業(yè)綠色認(rèn)證與推廣合同3篇
- 二零二五年陵園墓地購(gòu)置與家族紀(jì)念館建設(shè)合同3篇
- 二零二五版知識(shí)產(chǎn)權(quán)保護(hù)技術(shù)服務(wù)合同泄密責(zé)任細(xì)則3篇
- 二零二五年度餐飲企業(yè)食品安全追溯平臺(tái)建設(shè)合同3篇
- 二零二五年度食品供應(yīng)與餐飲服務(wù)合同2篇
- 二零二五年防火門(mén)制造與施工安裝一體化合同模板3篇
- 2025年度影視基地場(chǎng)地租賃及拍攝制作合同范本3篇
- 2025年復(fù)合材料堆放場(chǎng)地租賃及環(huán)保處理合同3篇
- 建筑材料供應(yīng)鏈管理服務(wù)合同
- 孩子改名字父母一方委托書(shū)
- 2024-2025學(xué)年人教版初中物理九年級(jí)全一冊(cè)《電與磁》單元測(cè)試卷(原卷版)
- 江蘇單招英語(yǔ)考綱詞匯
- 礦山隱蔽致災(zāi)普查治理報(bào)告
- 2024年事業(yè)單位財(cái)務(wù)工作計(jì)劃例文(6篇)
- 2024年工程咨詢服務(wù)承諾書(shū)
- 青桔單車保險(xiǎn)合同條例
- 車輛使用不過(guò)戶免責(zé)協(xié)議書(shū)范文范本
- 《獅子王》電影賞析
- 2023-2024學(xué)年天津市部分區(qū)九年級(jí)(上)期末物理試卷
評(píng)論
0/150
提交評(píng)論