未知數(shù)據(jù)

          從頭看Java

             ::  :: 聯(lián)系 :: 聚合  :: 管理
            28 Posts :: 0 Stories :: 10 Comments :: 0 Trackbacks

          1. 處理日期時(shí)間的類有java.util.Date和java.util.Calendar

          2. Date類從java1.0就開始存在了,到現(xiàn)在大部分方法都已經(jīng)過時(shí)了,所以不推薦使用.比如Date有6個(gè)構(gòu)造器,但其中有4個(gè)已經(jīng)不推薦使用了.

          3. Calendar是一個(gè)抽象類.本身不能被實(shí)例化,只能通過getInstance()的方法來獲取實(shí)例對(duì)象.Calendar.getInstance()根據(jù)TimeZone,Locale類獲取特定的Calendar

          4. Calendar是所有日歷類的模板,例如GregorianCalendar(公歷)

          5. Date和Calendar都是表示日期的工具類,二者之間可以任意轉(zhuǎn)換.Calendar的getTime()方法返回Date

          程序清單:

           
          import java.util.Calendar;
          import java.util.Date;
          import java.util.Locale;
           
          public class DateTest {
           
              /**
               * @param args
               */
              public static void main(String[] args) {
                  // TODO Auto-generated method stub
           
                  Calendar c = Calendar.getInstance(Locale.CHINESE);
                  
                  // 有Calendar獲取Date
                  Date d = c.getTime();
                  System.out.println(d);
                  
                  // 獲取年月日
                  System.out.println("年:"+c.get(Calendar.YEAR));
                  System.out.println("月:"+c.get(Calendar.MONTH));
                  System.out.println("日:"+c.get(Calendar.DATE));
                  
                  // 時(shí)間計(jì)算
                  c.add(Calendar.YEAR, -1);
                  System.out.println("前1年:"+c.getTime());
                  
                  // 設(shè)定時(shí)間,Calendar有兩種模式lenient(寬松模式)和non-lenient.當(dāng)Calendar處于寬松模式下,每個(gè)
                  // 時(shí)間字段都可以超出它允許的范圍;在處于非寬松模式下,當(dāng)時(shí)間字段超出范圍時(shí),會(huì)拋出異常
                  //c.setLenient(false);//容錯(cuò)開發(fā),false可關(guān)閉容錯(cuò),進(jìn)行日期合法性檢查
                  
                  
                  c.set(2009, 0, 32);// 容錯(cuò)性,當(dāng)字段值超過了正常范圍時(shí),上級(jí)字段會(huì)自動(dòng)增加
                  
                  // set方法延遲性,使用set方法后,日歷時(shí)間不會(huì)立即更新,要等到下次調(diào)用get(),getTime(),getTimeinMillis(),add()或roll()
                  // 時(shí),才會(huì)重新計(jì)算日歷的時(shí)間.這樣也避免了多次調(diào)用set方法帶來的多次計(jì)算.
                  
                  System.out.println("設(shè)定時(shí)間:"+c.getTime());
                  
                  // add和roll區(qū)別,add的上級(jí)字段會(huì)自動(dòng)增加
                  c.set(2008,11,31);
                  c.add(Calendar.MONTH, 1);
                  System.out.println("add():"+c.getTime());//2009-01-31  年份增加了
                  
                  c.set(2008,11,31);
                  c.roll(Calendar.MONTH, 1);
                  System.out.println("roll():"+c.getTime());//2008-01-31  年份沒有改變
                  
              }
           
          }
          posted on 2009-02-06 09:08 wangjc 閱讀(321) 評(píng)論(0)  編輯  收藏 所屬分類: 從頭看Java
          主站蜘蛛池模板: 明溪县| 张家界市| 广西| 渭南市| 观塘区| 桑植县| 西华县| 海宁市| 龙门县| 高州市| 锦屏县| 东丽区| 汉沽区| 广灵县| 张家港市| 台州市| 通州区| 新竹市| 玛沁县| 南雄市| 馆陶县| 青海省| 洪湖市| 二连浩特市| 渑池县| 江山市| 南涧| 西平县| 勐海县| 林口县| 龙里县| 故城县| 天台县| 宝丰县| 攀枝花市| 平乡县| 于都县| 万宁市| 开江县| 仪陇县| 蓬安县|