




已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
本文主要介紹Java中Date各種相關(guān)用法。AD: Java中Date各種相關(guān)用法(一)1.計算某一月份的最大天數(shù)Java代碼1. Calendartime=Calendar.getInstance();2. time.clear();3. time.set(Calendar.YEAR,year);4. time.set(Calendar.MONTH,i-1);/注意,Calendar對象默認一月為05. intday=time.getActualMaximum(Calendar.DAY_OF_MONTH);/本月份的天數(shù)注:在使用set方法之前,必須先clear一下,否則很多信息會繼承自系統(tǒng)當前時間2.Calendar和Date的轉(zhuǎn)化(1) Calendar轉(zhuǎn)化為DateJava代碼1. Calendarcal=Calendar.getInstance();2. Datedate=cal.getTime();(2) Date轉(zhuǎn)化為CalendarJava代碼1. Datedate=newDate();2. Calendarcal=Calendar.getInstance();3. cal.setTime(date);3.格式化輸出日期時間Java代碼1. Datedate=newDate();2. SimpleDateFormatdf=newSimpleDateFormat(yyyy-MM-ddhh:mm:ss);3. System.out.println(df.format(date);4.計算一年中的第幾星期(1)計算某一天是一年中的第幾星期Java代碼1. Calendarcal=Calendar.getInstance();2. cal.set(Calendar.YEAR,2006);3. cal.set(Calendar.MONTH,8);4. cal.set(Calendar.DAY_OF_MONTH,3);5. intweekno=cal.get(Calendar.WEEK_OF_YEAR);(2)計算一年中的第幾星期是幾號Java代碼1. SimpleDateFormatdf=newSimpleDateFormat(yyyy-MM-dd);2. Calendarcal=Calendar.getInstance();3. cal.set(Calendar.YEAR,2006);4. cal.set(Calendar.WEEK_OF_YEAR,1);5. cal.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);6. System.out.println(df.format(cal.getTime();輸出:2006-01-025.add()和roll()的用法(1)add()方法Java代碼1. SimpleDateFormatdf=newSimpleDateFormat(yyyy-MM-dd);2. Calendarcal=Calendar.getInstance();3. cal.set(Calendar.YEAR,2006);4. cal.set(Calendar.MONTH,8);5. cal.set(Calendar.DAY_OF_MONTH,3);6. cal.add(Calendar.DATE,-4);7. Datedate=cal.getTime();8. System.out.println(df.format(date);9. cal.add(Calendar.DATE,4);10. date=cal.getTime();11. System.out.println(df.format(date);輸出:2006-08-302006-09-03(2)roll方法Java代碼1. cal.set(Calendar.YEAR,2006);2. cal.set(Calendar.MONTH,8);3. cal.set(Calendar.DAY_OF_MONTH,3);4. cal.roll(Calendar.DATE,-4);5. date=cal.getTime();6. System.out.println(df.format(date);7. cal.roll(Calendar.DATE,4);8. date=cal.getTime();9. System.out.println(df.format(date);輸出:2006-09-292006-09-03可見,roll()方法在本月內(nèi)循環(huán),一般使用add()方法;Java中Date各種相關(guān)用法(二)6.計算兩個任意時間中間的間隔天數(shù)(1)傳進Calendar對象Java代碼1. /*/*計算兩個時間之間相隔天數(shù)2. *paramstartday開始時間3. *paramendday結(jié)束時間4. *return5. */6. publicintgetIntervalDays(Calendarstartday,Calendarendday).7. /確保startday在endday之前8. if(startday.after(endday).9. Calendarcal=startday;10. startday=endday;11. endday=cal;12. 13. /分別得到兩個時間的毫秒數(shù)14. longsl=startday.getTimeInMillis();15. longel=endday.getTimeInMillis();16. longei=el-sl;17. /根據(jù)毫秒數(shù)計算間隔天數(shù)18. return(int)(ei/(1000*60*60*24);19. (2)傳進Date對象Java代碼1. /*/*計算兩個時間之間相隔天數(shù)2. *paramstartday開始時間3. *paramendday結(jié)束時間4. *return5. */6. publicintgetIntervalDays(Datestartday,Dateendday).7. /確保startday在endday之前8. if(startday.after(endday).9. Datecal=startday;10. startday=endday;11. endday=cal;12. 13. /分別得到兩個時間的毫秒數(shù)14. longsl=startday.getTime();15. longel=endday.getTime();16. longei=el-sl;17. /根據(jù)毫秒數(shù)計算間隔天數(shù)18. return(int)(ei/(1000*60*60*24);19. 同理,可以用相同的方法計算出任意兩個時間相隔的小時數(shù),分鐘數(shù),秒鐘數(shù)等注:以上方法是完全按時間計算,有時并不能令人滿意,如:startday=2006-10-11 20:00:00endday=2006-10-12 8:00:00計算結(jié)果為0,但是我們也許相讓計算結(jié)果變?yōu)?,此時可以用如下方法實現(xiàn):在傳參之前,先設(shè)定endday的時間,如:Java代碼1. endday.set(Calendar.HOUR_OF_DAY,23);2. endday.set(Calendar.MINUTE,59);3. endday.set(Calendar.SECOND,59);4. endday.set(Calendar.MILLISECOND,59);這樣再傳進去startday,endday,則結(jié)果就如我們所愿了。不過,如果嫌以上方法麻煩,可以參考以下方法:(3)改進精確計算相隔天數(shù)的方法Java代碼1. publicintgetDaysBetween(Calendard1,Calendard2).2. if(d1.after(d2)./swapdatessothatd1isstartandd2isend3. java.util.Calendarswap=d1;4. d1=d2;5. d2=swap;6. 7. intdays=d2.get(Calendar.DAY_OF_YEAR)-d1.get(Calendar.DAY_OF_YEAR);8. inty2=d2.get(Calendar.YEAR);9. if(d1.get(Calendar.YEAR)!=y2).10. d1=(Calendar)d1.clone();11. do.12. days+=d1.getActualMaximum(Calendar.DAY_OF_YEAR);/得到當年的實際天數(shù)13. d1.add(Calendar.YEAR,1);14. while(d1.get(Calendar.YEAR)!=y2);15. 16. returndays;17. Java中Date各種相關(guān)用法(三)獲取系統(tǒng)當前時間:Java代碼1. publicstaticStringgetSystemTime()2. Datedate=newDate();3. SimpleDateFormatdf=newSimpleDateFormat(yyyy-MM-ddHH:mm:ss);4. returndf.format(date);5. 6. /字符串轉(zhuǎn)化成時間類型(字符串可以是任意類型,只要和SimpleDateFormat中的格式一致即可)7. java.text.SimpleDateFormatsdf=newjava.text.SimpleDateFormat(M/dd/yyyyhh:mm:ssa,java.util.Locale.US);8. java.util.Dated=sdf.parse(5/13/200310:31:37AM);9. SimpleDateFormatformatter=newSimpleDateFormat(yyyy-MM-ddHH:mm:ss);10. StringmDateTime1=formatter.format(d);11. /當前時間12. Calendarcal=Calendar.getInstance();13. /SimpleDteFormatformatter=newSimpleDateFormat(yyyy-MM-ddHH:mm:ss);14. SimpleDateFormatformatter=newSimpleDateFormat(yyyy-MM-ddHH:mm:ssGEDFwWaEF);15. StringmDateTime=formatter.format(cal.getTime();16. /1年前日期17. java.util.DatemyDate=newjava.util.Date();18. longmyTime=(myDate.getTime()/1000)-60*60*24*365;19. myDate.setTime(myTime*1000);20. StringmDate=formatter.format(myDate);21. /明天日期22. myDate=newjava.util.Date();23. myTime=(myDate.getTime()/1000)+60*60*24;24. myDate.setTime(myTime*1000);25. mDate=formatter.format(myDate);26. /兩個時間之間的天數(shù)27. SimpleDateFormatmyFormatter=newSimpleDateFormat(yyyy-MM-dd);28. java.util.Datedate=myFormatter.parse(2003-05-1);29. java.util.Datemydate=myFormatter.parse(1899-12-30);30. longday=(date.getTime()-mydate.getTime()/(24*60*60*1000);31. /加半小時32. SimpleDateFormatformat=newSimpleDateFormat(yyyy-MM-ddhh:mm:ss);33. java.util.Datedate1=format.parse(2002-02-2823:16:00);34. longTime=(date1.getTime()/1000)+60*30;35. date1.setTime(Time*1000);36. Stringmydate1=formatter.format(date1);37. /年月周求日期38. SimpleDateFormatformatter2=newSimpleDateFormat(yyyy-MMFE);39. java.util.Datedate2=formatter2.parse(2003-055星期五);40. SimpleDateFormatformatter3=newSimpleDateFormat(yyyy-MM-dd);41. Stringmydate2=formatter3.format(date2);42. /求是星期幾43. mydate=myFormatter.parse(2001-1-1);44. SimpleDateFormatformatter4=newSimpleDateFormat(E);45. Stringmydate3=formatter4.format(mydate);46. 在 開發(fā)web應(yīng)用中,針對不同的數(shù)據(jù)庫日期類型,我們需要在我們的程序中對日期類型做各種不同的轉(zhuǎn)換。若對應(yīng)數(shù)據(jù)庫數(shù)據(jù)是oracle的Date類型,即只 需要年月日的,可以選擇使用java.sql.Date類型,若對應(yīng)的是MSsqlserver數(shù)據(jù)庫的DateTime類型,即需要年月日時分秒的,選 擇java.sql.Timestamp類型你可以使用dateFormat定義時間日期的格式,轉(zhuǎn)一個字符串即可Java代碼1. packagepersonal.jessica;2. importjava.util.Date;3. importjava.util.Calendar;4. importjava.sql.Timestamp;5. importjava.text.DateFormat;6. importjava.text.SimpleDateFormat;7. importjava.util.Locale;8. classDatetest9. /*10. *method將字符串類型的日期轉(zhuǎn)換為一個timestamp(時間戳記java.sql.Timestamp)11. *paramdateString需要轉(zhuǎn)換為timestamp的字符串12. *returndataTimetimestamp13. */14. publicfinalstaticjava.sql.Timestampstring2Time(StringdateString)15. throwsjava.text.ParseException16. DateFormatdateFormat;17. dateFormat=newSimpleDateFormat(yyyy-MM-ddkk:mm:ss.SSS,Locale.ENGLISH);/設(shè)定格式18. /dateFormat=newSimpleDateFormat(yyyy-MM-ddkk:mm:ss,Locale.ENGLISH);19. dateFormat.setLenient(false);20. java.util.DatetimeDate=dateFormat.parse(dateString);/util類型21. java.sql.TimestampdateTime=newjava.sql.Timestamp(timeDate.getTime();/Timestamp類型,timeDate.getTime()返回一個long型22. returndateTime;23. Java中Date各種相關(guān)用法(四) 1. /*2. *method將字符串類型的日期轉(zhuǎn)換為一個Date(java.sql.Date)3. *paramdateString需要轉(zhuǎn)換為Date的字符串4. *returndataTimeDate5. */6. publicfinalstaticjava.sql.Datestring2Date(StringdateString)7. throwsjava.lang.Exception8. DateFormatdateFormat;9. dateFormat=newSimpleDateFormat(yyyy-MM-dd,Locale.ENGLISH);10. dateFormat.setLenient(false);11. java.util.DatetimeDate=dateFormat.parse(dateString);/util類型12. java.sql.DatedateTime=newjava.sql.Date(timeDate.getTime();/sql類型13. returndateTime;14. 15. publicstaticvoidmain(Stringargs)16. Dateda=newDate();17. /注意:這個地方da.getTime()得到的是一個long型的值18. System.out.println(da.getTime();19. /由日期date轉(zhuǎn)換為timestamp20. /第一種方法:使用newTimestamp(long)21. Timestampt=newTimestamp(newDate().getTime();22. System.out.println(t);23. /第二種方法:使用Timestamp(intyear,intmonth,intdate,inthour,intminute,intsecond,intnano)24. Timestamptt=newTimestamp(Calendar.getInstance().get(25. Calendar.YEAR)-1900,Calendar.getInstance().get(26. Calendar.MONTH),Calendar.getInstance().get(27. Calendar.DATE),Calendar.getInstance().get(28. Calendar.HOUR),Calendar.getInstance().get(29. Calendar.MINUTE),Calendar.getInstance().get(30. Calendar.SECOND),0);31. System.out.println(tt);32. try33. StringsToDate=2005-8-18;/用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆河北省張家口市高三上學(xué)期期末質(zhì)量檢測地理試題及答案
- 2025年度專業(yè)車庫租賃權(quán)轉(zhuǎn)讓合同
- 2025年度農(nóng)村土地承包經(jīng)營權(quán)流轉(zhuǎn)與農(nóng)業(yè)文化遺產(chǎn)保護合同
- 2025年度中小企業(yè)流動資金授信借款合同
- 2025年度城市河道治理房屋拆遷補償合同
- 2025年度人才共享與借用項目合作協(xié)議
- 2025年度協(xié)商解除勞動合同與員工住房安置合同
- 2025年度公司銷售業(yè)務(wù)員協(xié)議書:人工智能賦能下的銷售代理合同
- 2025年度子女對父母贍養(yǎng)及社區(qū)互助保障協(xié)議
- 化妝品店裝修合同
- 《大學(xué)生安全教育》課件 項目四 軍事安全
- 10KV電力配電工程施工方案
- 智能感知工程基礎(chǔ)知識單選題100道及答案解析
- 肌肉注射藥物不良反應(yīng)及預(yù)防措施研究
- 人教版數(shù)學(xué)六年級上冊第一單元測試卷
- 大型養(yǎng)路機械司機(打磨車)高級工技能鑒定考試題庫(含答案)
- 車輛使用不過戶免責協(xié)議書范文范本
- 自建房-預(yù)算表
- DB11T 2033-2022 餐廚垃圾源頭減量操作要求
- 合約部年終工作總結(jié)
- 【人教版】pep六年級英語下全冊教案(表格版)
評論
0/150
提交評論