淡泊明志,寧靜致遠(yuǎn)

          JAVA中的常見日期處理

          幾個常見的關(guān)于日期的問題
          作者佚名 來源InterNet 加入時間:2005-1-8
          1. 怎樣計算兩個時間之間的間隔?

             間隔=Date1.getTime()-Date2.getTime();得出來的是毫秒數(shù).
               除1000是秒,再除60是分,再除60是小時..............................

               記住java標(biāo)準(zhǔn)庫中所有時間類都以此為基礎(chǔ)轉(zhuǎn)化的,只是他寫好了一些
             轉(zhuǎn)化的方法給你用而已.但都離不開這個毫秒數(shù)為基礎(chǔ).

          2. t=Calendar.getInstance();m=t.get(t.MONTH)+1;這里為什么要加一?

             在java語言里,date的month的取值范圍是:0~11,與人們的自然表達(dá)上相差1。


          3. 系統(tǒng)時間與當(dāng)前日期的區(qū)別?
             
              系統(tǒng)時間確切的說應(yīng)該是
              System.currentTimeMillis();
              new Date()是當(dāng)前日期,雖然它getTime();和System.currentTimeMillis();
              一樣,但System.currentTimeMillis();


          4. 如何計算兩個日期的天數(shù)差值?
             
              long beginTime = beginDate.getTime();
              long endTime2 = endDate.getTime();
              long betweenDays = (long)((endTime - beginTime) / (1000 * 60 * 60 *24) + 0.5);

          5. 如何比較日期時間大小?
                 
              第一種方法:
              use Calendar object to compare 
              java.util.Calendar class can be used to compare date. In order to do this, 
              you guy should parse that string into int year, month, day and construct a 
              Calendar object, and then do comparison.

              Below is a sample

              StringTokenizer token = new StringTokenizer(your string,"-");
              int year = Integer.parseInt(token.nextToken());
              int month = Integer.parseInt(token.nextToken());
              int day = Integer.parseInt(token.nextToken());
              Calendar date = Calendar.getInstance();
              date.set(year,month,day);
              Calendar today = Calendar.getInstacne();
              if(date.after(today)){
              //......
              }
              第二種方法
              Date nowDate=new Date();//當(dāng)前時間\r
              long nowTime=nowDate.getTime;
              long lastTime=userTime.longValue();//以前的時間\r
              long time=nowTime-lastTime;//時間相減比較。
              if(time>(long)60000)//1分鐘{}


              另外可用以下參考
              用時間戳,Date.getTime()可以把當(dāng)前時間改成時間戳,
              用CompareTo();
              用before(),after(),equals();

          6. 格式化日期的問題\r
             
              目的:
              第一次求日期
              java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM-dd"); 
              String riqi=formatter.format(currentTime_1); 
              第二次求時間\r
              java.text.DateFormat format1 = new java.text.SimpleDateFormat("hhmmss"); 
              java.util.Date currentTime_2 = new java.util.Date(); 
              String shijian=format1.format(currentTime_2); 
              得到的結(jié)果是 
              2002-02-19和115324(11點53分24秒)

              實現(xiàn):
              java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM-dd-H-mm-ss"); 
              java.util.Date currentTime_1 = new java.util.Date();
              String str_date = formatter.format(currentTime_1); 
              StringTokenizer token = new StringTokenizer(str_date,"-"); 
              String year = token.nextToken();
              String month= token.nextToken();
              String day = token.nextToken(); 
              String hh = token.nextToken(); 
              String mm = token.nextToken(); 
              String ss = token.nextToken(); 
              String riqi=year+"年\\"+month+"月"+day+"日"+"  "+hh+"點\\"+mm+"分"+ss+"秒\\"; 
              String newdir=year+month+day; 
              String wenjian = hh+mm+ss;

          7.  怎么得到一個月的天數(shù)?
              
                  java.util.Calendar date = java.util.Calendar.getInstance();
                  System.out.println(date.getActualMaximum(date.DAY_OF_MONTH));




          有了上面的基礎(chǔ),想做別的也就變的非常簡單.還有很多關(guān)于Calendar 的操作,可以參照SUN公司的在線文檔(http://java.sun.com/j2se/1.4.2/docs/api/index.html)
          例如從一個時間格式為YYYY-MM-DD的字符串中,求下一天應(yīng)該是多少的函數(shù);
          private String AddOneDay(String _pDate)
           {
                   java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM-dd"); 
                   StringTokenizer dateST=new StringTokenizer(_pDate,"-");
                   Calendar cd = Calendar.getInstance();
                   cd.set(Integer.parseInt(dateST.nextToken()),Integer.parseInt(dateST.nextToken())-1,Integer.parseInt(dateST.nextToken()));
                   cd.add(Calendar.DATE, 1);
                 
                  return formatter.format(cd.getTime());
           }

           等等.

          posted on 2006-02-23 15:52 淡泊明志,寧靜致遠(yuǎn) 閱讀(489) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 罗平县| 阿克陶县| 泽州县| 沾益县| 封丘县| 定远县| 曲周县| 永川市| 仪征市| 四川省| 海原县| 定襄县| 古蔺县| 广河县| 阿荣旗| 靖安县| 湖南省| 庆阳市| 西宁市| 深水埗区| 兴安盟| 清苑县| 金秀| 两当县| 商水县| 咸丰县| 崇阳县| 彰武县| 洪洞县| 沧州市| 棋牌| 浠水县| 南宫市| 正宁县| 铜鼓县| 施甸县| 通辽市| 五指山市| 舒城县| 商河县| 师宗县|