qiyadeng

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

          導航

          公告

          更多請訪問,www.qiyadeng.com
          <2013年2月>
          272829303112
          3456789
          10111213141516
          17181920212223
          242526272812
          3456789

          常用鏈接

          留言簿(12)

          文章分類(35)

          相冊

          J2EE

          Others

          Tools

          積分與排名

          • 積分 - 310902
          • 排名 - 184

          最新評論

          閱讀排行榜

          Java計算日期和時間差

          Posted on 2013-02-19 22:27 qiyadeng 閱讀(15149) 評論(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 網絡記事本
          這個不錯,收藏一下!

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


          網站導航:
           
          主站蜘蛛池模板: 得荣县| 商洛市| 隆昌县| 敖汉旗| 卫辉市| 濉溪县| 威信县| 巴南区| 利津县| 垣曲县| 宜丰县| 乌兰县| 蒙城县| 财经| 海丰县| 左权县| 克东县| 高青县| 舟曲县| 醴陵市| 渭南市| 凌源市| 定陶县| 斗六市| 平谷区| 秦皇岛市| 临沧市| 华容县| 林周县| 罗定市| 儋州市| 韶关市| 文成县| 维西| 吉木乃县| 永福县| 青川县| 保德县| 六枝特区| 平乡县| 麻城市|