qiyadeng

          專注于Java示例及教程
          posts - 84, comments - 152, trackbacks - 0, articles - 34

          Java計算日期和時間差

          Posted on 2013-02-19 22:27 qiyadeng 閱讀(15151) 評論(2)  編輯  收藏

          這篇文章將使用兩個例子計算兩個日期的時間差。
          1.使用Java SDK。
          2.使用Joda庫。
          1.使用Java SDK
           計算兩個Date之間的時間差,基本思路為把Date轉換為ms(微秒),然后計算兩個微秒時間差。時間的兌換規則如下:

          1s秒 = 1000ms毫秒 1min分種 = 60s秒 1hours小時 = 60min分鐘 1day天 = 24hours小時
          package com.qiyadeng.date;

          import java.text.SimpleDateFormat;
          import java.util.Date;

          public class DateDifferentExample {
              
          public static void main(String[] args) {
                  String dateStart 
          = "2013-02-19 09:29:58";
                  String dateStop 
          = "2013-02-20 11:31:48";

                  SimpleDateFormat format 
          = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

                  Date d1 
          = null;
                  Date d2 
          = null;

                  
          try {
                      d1 
          = format.parse(dateStart);
                      d2 
          = format.parse(dateStop);

                      
          //毫秒ms
                      long diff = d2.getTime() - d1.getTime();

                      
          long diffSeconds = diff / 1000 % 60;
                      
          long diffMinutes = diff / (60 * 1000% 60;
                      
          long diffHours = diff / (60 * 60 * 1000% 24;
                      
          long diffDays = diff / (24 * 60 * 60 * 1000);

                      System.out.print(
          "兩個時間相差:");
                      System.out.print(diffDays 
          + " 天, ");
                      System.out.print(diffHours 
          + " 小時, ");
                      System.out.print(diffMinutes 
          + " 分鐘, ");
                      System.out.print(diffSeconds 
          + " 秒.");

                  } 
          catch (Exception e) {
                      e.printStackTrace();
                  }

              }
          }

          運行結果:

          兩個時間相差:1 天, 2 小時, 1 分鐘, 50 秒.

          2.Joda時間庫

          package com.qiyadeng.date;

          import java.text.SimpleDateFormat;
          import java.util.Date;

          import org.joda.time.DateTime;
          import org.joda.time.Days;
          import org.joda.time.Hours;
          import org.joda.time.Minutes;
          import org.joda.time.Seconds;

          public class JodaDateDifferentExample {
              
          public static void main(String[] args) {
                  String dateStart 
          = "2013-02-19 09:29:58";
                  String dateStop 
          = "2013-02-20 11:31:48";

                  SimpleDateFormat format 
          = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

                  Date d1 
          = null;
                  Date d2 
          = null;

                  
          try {
                      d1 
          = format.parse(dateStart);
                      d2 
          = format.parse(dateStop);

                      DateTime dt1 
          = new DateTime(d1);
                      DateTime dt2 
          = new DateTime(d2);

                      System.out.print(
          "兩個時間相差:");
                      System.out.print(Days.daysBetween(dt1, dt2).getDays() 
          + " 天, ");
                      System.out.print(Hours.hoursBetween(dt1, dt2).getHours() 
          % 24
                              
          + " 小時, ");
                      System.out.print(Minutes.minutesBetween(dt1, dt2).getMinutes() 
          % 60
                              
          + " 分鐘, ");
                      System.out.print(Seconds.secondsBetween(dt1, dt2).getSeconds() 
          % 60
                              
          + " 秒.");

                  } 
          catch (Exception e) {
                      e.printStackTrace();
                  }

              }
          }

          運行結果:

          兩個時間相差:1 天, 2 小時, 1 分鐘, 50 秒.

          原創文章,轉載請注明: 轉載自http://www.qiyadeng.com/

          本文鏈接地址: Java計算日期和時間差

          Feedback

          # re: Java計算日期和時間差  回復  更多評論   

          2013-02-20 11:14 by Unmi
          joda 庫不錯,Playframework 中就是用的 joda 庫,joda-time.

          # re: Java計算日期和時間差  回復  更多評論   

          2013-02-20 20:21 by 網絡記事本
          這個不錯,收藏一下!

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


          網站導航:
           
          主站蜘蛛池模板: 阜阳市| 万山特区| 绥德县| 呈贡县| 岳阳县| 安新县| 南涧| 武平县| 永修县| 秭归县| 五寨县| 黎城县| 临猗县| 镇赉县| 威宁| 二连浩特市| 师宗县| 平昌县| 柘城县| 清远市| 万载县| 偏关县| 吉首市| 龙游县| 黄平县| 渝北区| 崇仁县| 航空| 桂东县| 博湖县| 广汉市| 玛纳斯县| 景东| 丹东市| 从化市| 剑阁县| 旺苍县| 曲松县| 贡觉县| 德江县| 景洪市|