![JAVA處理期時(shí)間常用方法_第1頁(yè)](http://file4.renrendoc.com/view/753a88aff2281dfe6a86f8ee6529bd6c/753a88aff2281dfe6a86f8ee6529bd6c1.gif)
![JAVA處理期時(shí)間常用方法_第2頁(yè)](http://file4.renrendoc.com/view/753a88aff2281dfe6a86f8ee6529bd6c/753a88aff2281dfe6a86f8ee6529bd6c2.gif)
![JAVA處理期時(shí)間常用方法_第3頁(yè)](http://file4.renrendoc.com/view/753a88aff2281dfe6a86f8ee6529bd6c/753a88aff2281dfe6a86f8ee6529bd6c3.gif)
![JAVA處理期時(shí)間常用方法_第4頁(yè)](http://file4.renrendoc.com/view/753a88aff2281dfe6a86f8ee6529bd6c/753a88aff2281dfe6a86f8ee6529bd6c4.gif)
![JAVA處理期時(shí)間常用方法_第5頁(yè)](http://file4.renrendoc.com/view/753a88aff2281dfe6a86f8ee6529bd6c/753a88aff2281dfe6a86f8ee6529bd6c5.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
#/14JAVA處理日期時(shí)間常用方法:java.util.CalendarCalendar類(lèi)是一個(gè)抽象類(lèi),它為特定瞬間與一組諸如YEAR、MONTH、DAY_OF_MONTH、HOUR等日歷字段之間的轉(zhuǎn)換提供了一些方法,并為操作日歷字段(例如獲得下星期的日期)提供了一些方法。瞬間可用毫秒值來(lái)表示,它是距歷元(即格林威治標(biāo)準(zhǔn)時(shí)間1970年1月1日的00:00:00.000,格里高利歷)的偏移量。例:Calendarcal=Calendar.getInstance()。〃使用默認(rèn)時(shí)區(qū)和語(yǔ)言環(huán)境獲得一個(gè)日歷。cal.add(Calendar.DAY_OF_MONTH,-1)。//取當(dāng)前日期的前一天.cal.add(Calendar.DAY_OF_MONTH,+1)。//取當(dāng)前日期的后一天.//通過(guò)格式化輸出日期java.text.SimpleDateFormatformat=newjava.text.SimpleDateFormat("yyyy-MM-dd")。System.out.println("Todayis:"+format.format(Calendar.getInstance().getTime()))。System.out.println("yesterdayis:"+format.format(cal.getTime()))。得到2007-12-25日期:Calendarcalendar=newGregorianCalendar(2007,11,25,0,0,0)。Datedate=calendar.getTime()。System.out.println("2007Christmasis:"+format.format(date))。//java月份是從0-11,月份設(shè)置時(shí)要減1.//GregorianCalendar構(gòu)造方法參數(shù)依次為:年,月-1,日,時(shí),分,秒.取日期的部分:intyear=calendar.get(Calendar.YEAR)。intmonth=calendar.get(Calendar.MONTH)+1。intday=calendar.get(Calendar.DAY_OF_MONTH)。inthour=calendar.get(Calendar.HOUR_OF_DAY)。intminute=calendar.get(Calendar.MINUTE)。intseconds=calendar.get(Calendar.SECOND)。取月份要加1.判斷當(dāng)前月份的最大天數(shù):Calendarcal=Calendar.getInstance()。intday=cal.getActualMaximum(Calendar.DAY_OF_MONTH)。System.out.println(day)。java.util.Date類(lèi)Date表示特定的瞬間,精確到毫秒。從JDK1.1開(kāi)始,應(yīng)該使用Calendar類(lèi)實(shí)現(xiàn)日期和時(shí)間字段之間轉(zhuǎn)換,使用DateFormat類(lèi)來(lái)格式化和分析日期字符串。Date中的相應(yīng)方法已廢棄。盡管Date類(lèi)打算反映協(xié)調(diào)世界時(shí)(UTC),但無(wú)法做到如此準(zhǔn)確,這取決于Java虛擬機(jī)的主機(jī)環(huán)境。當(dāng)前幾乎所有操作系統(tǒng)都假定1天=24義60義60=86400秒。但對(duì)于UTC,大約每一兩年出現(xiàn)一次額外的一秒,稱(chēng)為“閏秒”。閏秒始終作為當(dāng)天的最后一秒增加,并且始終在12月31日或6月30日增加。例如,1995年的最后一分鐘是61秒,因?yàn)樵黾恿碎c秒。大多數(shù)計(jì)算機(jī)時(shí)鐘不是特別的準(zhǔn)確,因此不能反映閏秒的差別。在類(lèi)Date所有可以接受或返回年、月、日期、小時(shí)、分鐘和秒值的方法中,將使用下面的表示形式:年份y由整數(shù)y-1900表示。?月份由從0至11的整數(shù)表示;0是一月、1是二月等等;因此11是十二月。日期(一月中的某天)按通常方式由整數(shù)1至31表示。小時(shí)由從0至23的整數(shù)表示。因此,從午夜到1a.m.的時(shí)間是0點(diǎn),從中午到1p.m.的時(shí)間是12點(diǎn)。分鐘按通常方式由0至59的整數(shù)表示。秒由0至61的整數(shù)表示;值60和61只對(duì)閏秒發(fā)生,盡管那樣,也只用在實(shí)際正確跟蹤閏秒的Java實(shí)現(xiàn)中。于按當(dāng)前引入閏秒的方式,兩個(gè)閏秒在同一分鐘內(nèi)發(fā)生是極不可能的,但此規(guī)范遵循ISOC的日期和時(shí)間約定。在所有情形中,針對(duì)這些目的賦予方法的參數(shù)不需要在指定的范圍內(nèi);例如,可以把日期指定為1月32日,并把它解釋為2月1日的相同含義。java.util.Datetoday=newjava.util.Date()。System.out.println("Todayis"+formats.format(today))。取當(dāng)月的第一天:java.text.SimpleDateFormatformat=newjava.text.SimpleDateFormat("yyyy-MM-01")。java.util.DatefirstDay=newjava.util.Date()。System.out.println("themonthfirstdayis"+formats.format(firstDay))。取當(dāng)月的最后一天:Calendarcal=Calendar.getInstance()。intmaxDay=cals.getActualMaximum(Calendar.DAY_OF_MONTH)。java.text.Formatformatter3=newjava.text.SimpleDateFormat("yyyy-MM-"+maxDay)。System.out.println(formatter3.format(cal.getTime()))。求兩個(gè)日期之間相隔的天數(shù):java.text.SimpleDateFormatformat=newjava.text.SimpleDateFormat("yyyy-MM-dd")。java.util.DatebeginDate=format.parse("2007-12-24")。java.util.DateendDate=format.parse("2007-12-25")。longday=(date.getTime()-mydate.getTime())/(24*60*60*1000)。System.out.println("相隔的天數(shù)^+day)。一年前的日期:java.text.Formatformatter=newjava.text.SimpleDateFormat("yyyy-MM-dd")。java.util.DatetodayDate=newjava.util.Date()。longbeforeTime=(todayDate.getTime()/1000)-60*60*24*365。todayDate.setTime(beforeTime*1000)。StringbeforeDate=formatter.format(todayDate)。System.out.println(beforeDate)。一年后的日期:java.text.Formatformatter=newjava.text.SimpleDateFormat("yyyy-MM-dd")。java.util.DatetodayDate=newjava.util.Date()。longafterTime=(todayDate.getTime()/1000)+60*60*24*365。todayDate.setTime(afterTime*1000)。StringafterDate=formatter.format(todayDate)。System.out.println(afterDate)。求10小時(shí)后的時(shí)間java.util.CalendarCal=java.util.Calendar.getInstance()。Cal.setTime(dateOper)。Cal.add(java.util.Calendar.HOUR_OF_DAY,10)。System.out.println("date:"+forma.format(Cal.getTime()))。求10小時(shí)前的時(shí)間java.util.CalendarCal=java.util.Calendar.getInstance()。Cal.setTime(dateOper)。Cal.add(java.util.Calendar.HOUR_OF_DAY,-10)。System.out.println("date:"+forma.format(Cal.getTime()))。3.java.sql.Date繼承自java.util.Date,是操作數(shù)據(jù)庫(kù)用的日期類(lèi)型一個(gè)包裝了毫秒值的瘦包裝器(thinwrapper),它允許JDBC將毫秒值標(biāo)識(shí)為SQLDATE值。毫秒值表示自1970年1月1日00:00:00GMT以來(lái)經(jīng)過(guò)的毫秒數(shù)。為了與SQLDATE的定義一致,由java.sql.Date實(shí)例包裝的毫秒值必須通過(guò)將時(shí)間、分鐘、秒和毫秒設(shè)置為與該實(shí)例相關(guān)的特定時(shí)區(qū)中的零來(lái)“規(guī)范化”。java.sql.DatesqlDate=newjava.sql.Date(java.sql.Date.valueOf("2007-12-25").getTime())。日期比較:簡(jiǎn)單的比較可以以字符串的形式直接比較,也可使用java.sql.Date.valueOf("2007-03-08").compareTo(java.sql.Date.valueOf("2007-03-18"))方式來(lái)比較日期的大小.也可使用java.util.Date.after(java.util.Date)來(lái)比較.4.java.util.GregorianCalendarGregorianCalendar是Calendar的一個(gè)具體子類(lèi),提供了世界上大多數(shù)國(guó)家/地區(qū)使用的標(biāo)準(zhǔn)日歷系統(tǒng)。GregorianCalendar是一種混合日歷,在單一間斷性的支持下同時(shí)支持儒略歷和格里高利歷系統(tǒng),在默認(rèn)情況下,它對(duì)應(yīng)格里高利日歷創(chuàng)立時(shí)的格里高利歷日期(某些國(guó)家/地區(qū)是在1582年10月15日創(chuàng)立,在其他國(guó)家/地區(qū)要晚一些)??捎烧{(diào)用方通過(guò)調(diào)用setGregorianChange()來(lái)更改起始日期。歷史上,在那些首先采用格里高利歷的國(guó)家/地區(qū)中,1582年10月4日(儒略歷)之后就是1582年10月15日(格里高利歷)。此日歷正確地模擬了這些變化。在開(kāi)始格里高利歷之前,GregorianCalendar實(shí)現(xiàn)的是儒略歷。格里高利歷和儒略歷之間的惟一區(qū)別就是閏年規(guī)則。儒略歷指定每4年就為閏年,而格里高利歷則忽略不能被400整除的世紀(jì)年。GregorianCalendar可實(shí)現(xiàn)預(yù)期的格里高利歷和儒略歷。也就是說(shuō),可以通過(guò)在時(shí)間上無(wú)限地向后或向前外推當(dāng)前規(guī)則來(lái)計(jì)算日期。因此,對(duì)于所有的年份,都可以使用GregorianCalendar來(lái)生成有意義并且一致的結(jié)果。但是,采用現(xiàn)代儒略歷規(guī)則時(shí),使用GregorianCalendar得到的日期只在歷史上從公元4年3月1日之后是準(zhǔn)確的。在此日期之前,閏年規(guī)則的應(yīng)用沒(méi)有規(guī)則性,在45BC之前,甚至不存在儒略歷。在格里高利歷創(chuàng)立以前,新年是3月25日。為了避免混淆,此日歷始終使用1月1日為新年。如果想要格里高利歷轉(zhuǎn)換之前并且處于1月1日和3月24日之間的日期,則可以進(jìn)行手動(dòng)調(diào)整。為WEEK_OF_YEAR字段所計(jì)算的值的范圍從1到53。一年的第一個(gè)星期始于getFirstDayOfWeek()的最早7天,至少包含該年的getMinimalDaysInFirstWeek()各天。這取決于getMinimalDaysInFirstWeek()、getFirstDayOfWeek()的值以及1月1日是星期幾。一年的第一個(gè)星期和下一年的第一個(gè)星期之間的各個(gè)星期按順序從2到52或53(根據(jù)需要)進(jìn)行編號(hào)。例如,1998年1月1日是星期四。如果getFirstDayOfWeek()為MONDAY,并且getMinimalDaysInFirstWeek()為4(這些值反映了ISO8601和很多國(guó)家/地區(qū)標(biāo)準(zhǔn)),則1998年的第一個(gè)星期開(kāi)始于1997年12月29日,結(jié)束于1998年1月4日。但是,如果getFirstDayOfWeek()為SUNDAY,那么1998年的第一個(gè)星期開(kāi)始于1998年1月4日,結(jié)束于1998年1月10日;1998年頭三天是1997年第53個(gè)星期的一部分。為WEEK_OF_MONTH字段所計(jì)算的值的范圍從0到6。一個(gè)月的第一個(gè)星期(WEEK_OF_MONTH=1的日期)是該月至少連續(xù)getMinimalDaysInFirstWeek()天中的最早日期,結(jié)束于getFirstDayOfWeek()的前一天。與一年的第一個(gè)星期不同,一個(gè)月的第一個(gè)星期可能短于7天,也不必從getFirstDayOfWeek()這一天開(kāi)始,并且不包括前一個(gè)月的日期。在第一個(gè)星期之前該月日期的WEEK_OF_MONTH為0。java.text.DateFormatDateFormat是日期/時(shí)間格式化子類(lèi)的抽象類(lèi),它以與語(yǔ)言無(wú)關(guān)的方式格式化并分析日期或時(shí)間。日期/時(shí)間格式化子類(lèi)(如SimpleDateFormat)允許進(jìn)行格式化(也就是日期->文本)、分析(文本->日期)和標(biāo)準(zhǔn)化。將日期表示為Date對(duì)象,或者表示為從GMT(格林尼治標(biāo)準(zhǔn)時(shí)間)1970年,1月1日00:00:00這一刻開(kāi)始的毫秒數(shù)。DateFormat提供了很多類(lèi)方法,以獲得基于默認(rèn)或給定語(yǔ)言環(huán)境和多種格式化風(fēng)格的默認(rèn)日期/時(shí)間Formatter。格式化風(fēng)格包括FULL、LONG、MEDIUM和SHORT。方法描述中提供了使用這些風(fēng)格的更多細(xì)節(jié)和示例。DateFormat可幫助進(jìn)行格式化并分析任何語(yǔ)言環(huán)境的日期。對(duì)于月、星期,甚至日歷格式(陰歷和陽(yáng)歷),其代碼可完全與語(yǔ)言環(huán)境的約定無(wú)關(guān)。要格式化一個(gè)當(dāng)前語(yǔ)言環(huán)境下的日期,可使用某個(gè)靜態(tài)工廠方法:myString=DateFormat.getDateInstance().format(myDate)。如果格式化多個(gè)日期,那么獲得該格式并多次使用它是更為高效的做法,這樣系統(tǒng)就不必多次獲取有關(guān)環(huán)境語(yǔ)言和國(guó)家/地區(qū)約定的信息了。DateFormatdf=DateFormat.getDateInstance()。for(inti=0。i<myDate.length。++i){output.println(df.format(myDate[i])+"。")。}要格式化不同語(yǔ)言環(huán)境的日期,可在getDateInstance()的調(diào)用中指定它。DateFormatdf=DateFormat.getDateInstance(DateFormat.LONG,Locale.FRANCE)。還可使用DateFormat進(jìn)行分析。myDate=df.parse(myString)。使用getDateInstance來(lái)獲得該國(guó)家/地區(qū)的標(biāo)準(zhǔn)日期格式。另外還提供了一些其他靜態(tài)工廠方法。使用getTimeInstance可獲得該國(guó)家/地區(qū)的時(shí)間格式。使用getDateTimeInstance可獲得日期和時(shí)間格式。可以將不同選項(xiàng)傳入這些工廠方法,以控制結(jié)果的長(zhǎng)度(從SHORT到MEDIUM到LONG再到FULL)。確切的結(jié)果取決于語(yǔ)言環(huán)境,但是通常:.SHORT完全為數(shù)字,如12.13.52或3:30pm.MEDIUM較長(zhǎng),如Jan12,1952.LONG更長(zhǎng),如January12,1952或3:30:32pm.FULL是完全指定,如Tuesday,April12,1952AD或3:30:42pmPST。如果愿意,還可以在格式上設(shè)置時(shí)區(qū)。如果想對(duì)格式化或分析施加更多的控制(或者給予用戶(hù)更多的控制),可以嘗試將從工廠方法所獲得的DateFormat強(qiáng)制轉(zhuǎn)換為SimpleDateFormat。這適用于大多數(shù)國(guó)家/地區(qū);只是要記住將其放入一個(gè)try代碼塊中,以防遇到特殊的格式。還可以使用借助ParsePosition和FieldPosition的分析和格式化方法形式來(lái)?逐步地分析字符串的各部分。.對(duì)齊任意特定的字段,或者找出字符串在屏幕上的選擇位置。java.text.SimpleDateFormatSimpleDateFormat是一個(gè)以與語(yǔ)言環(huán)境相關(guān)的方式來(lái)格式化和分析日期的具體類(lèi)。它允許進(jìn)行格式化(日期->文本)、分析(文本->
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度化妝品品牌國(guó)際化戰(zhàn)略規(guī)劃與執(zhí)行合同
- 2025供用氣合同(合同版本)
- 2025試用期勞動(dòng)合同范例
- 2025年度建筑勞務(wù)派遣及施工現(xiàn)場(chǎng)生活服務(wù)分包合同
- 2025正確理解保險(xiǎn)合同的成立及相關(guān)法律關(guān)系
- 2025年個(gè)人購(gòu)房合同格式范文(2篇)
- 2025年度劇院場(chǎng)地租賃與文創(chuàng)產(chǎn)品開(kāi)發(fā)合同
- 2025年度家居裝飾家具定制設(shè)計(jì)與采購(gòu)合同
- 2025年度智能化雞苗孵化與銷(xiāo)售服務(wù)合同
- 2025年度倉(cāng)儲(chǔ)物流租賃服務(wù)合同
- 2025年中國(guó)南方航空股份有限公司招聘筆試參考題庫(kù)含答案解析
- 商務(wù)部發(fā)布《中國(guó)再生資源回收行業(yè)發(fā)展報(bào)告(2024)》
- 山東省濟(jì)南市2024-2024學(xué)年高三上學(xué)期1月期末考試 地理 含答案
- 2025年福建新華發(fā)行(集團(tuán))限責(zé)任公司校園招聘高頻重點(diǎn)提升(共500題)附帶答案詳解
- 實(shí)施彈性退休制度暫行辦法解讀課件
- 冷凍食品配送售后服務(wù)體系方案
- 江蘇省駕??荚嚳颇恳豢荚囶}庫(kù)
- 中華護(hù)理學(xué)會(huì)團(tuán)體標(biāo)準(zhǔn)-氣管切開(kāi)非機(jī)械通氣患者氣道護(hù)理
- 檢驗(yàn)科臨檢組風(fēng)險(xiǎn)評(píng)估報(bào)告文書(shū)
- 幼小銜接拼音試卷-帶彩圖-幼小銜接拼音試卷圖片-幼小拼音試卷習(xí)題
- 曹晶《孫悟空大鬧蟠桃會(huì)》教學(xué)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論