这篇文章将使用两个例子计算两个日期的时间差。
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时间库

使用 joda-time-1.6.2 jar包  资源连接地址:http://www.java2s.com/Code/Jar/j/Downloadjodatime162jar.htm

package util;

import java.text.ParseException;
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 TimeDiffUtil { public Integer getTimeDifference(String time) {
SimpleDateFormat date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String endTime = time;
String nowDate = date.format(new Date());
Date now = null;
Date end = null ;
try {
now = date.parse(nowDate);
end = date.parse(endTime);
} catch (ParseException e) {
e.printStackTrace();
}
return Days.daysBetween(new DateTime(end), new DateTime(now)).getDays();
} public static void main(String[] args) throws ParseException {
  System.out.println(new TimeDiffUtil().getTimeDifference("2015-01-01 00:00:00"));   /**以下内容被放在getTimeDifference()方法中*/
	  /*String dateStart = "2013-02-19 09:29:58";
  String dateStop = "2015-01-01 11:31:48";   SimpleDateFormat date = new SimpleDateFormat("yyyy-MM-dd");
  dateStart = date.format(new Date());   Date d1 = null;
  Date d2 = null;   try {
   d1 = date.parse(dateStart);
   d2 = date.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 秒.

Java计算日期和时间差的更多相关文章

  1. 用Java计算某个日期100天后的日期

    用Java计算日期时间,首先考虑到时间类,Java中提供的和时间日期相关的类里,有一个Calendar类,可以获取某个时间日期. 计算某个日期100天后的日期,思路如下: 1.先设定时间,例如2017 ...

  2. java中计算两个时间差

    java计算时间差及比较时间大小 比如:现在是2004-03-26 13:31:40 过去是:2004-01-02 11:30:24 我现在要获得两个日期差,差的形式为:XX天XX小时XX分XX秒 方 ...

  3. 计算日期时间 自动加1天 PHP计算闰年 java与PHP时间戳对比区别

    昨天写一个同步数据库的模块  从一个数据库同步到另外一个数据库,因为数据较多,不可能一次性全部搬迁过去,所以就按照每天搬迁! 写了一个 模块,点击加1,只要点击一次,自动从A数据库取出1天的数据, 并 ...

  4. java计算两个日期相差多少天

    java计算两个日期相差多少天 public class DateUtil{ public static int betweenDays(Date startDate, Date endDate ) ...

  5. JAVA中日期转换和日期计算的方法

    日期的格式有很多形式,在使用过程中经常需要转换,下面是各种类型转换的使用例子以及日期计算方法的例子. 一.不同格式日期相互转换方法 public class TestDateConvertUtil { ...

  6. oracle计算两个日期的时间差时分秒

    Oracle函数可以实现诸多的功能,下面就介绍使用oracle函数计算时间差的实现方法. 两个Date类型字段:START_DATE,END_DATE,计算这两个日期的时间差(分别以天,小时,分钟,秒 ...

  7. Java计算两个字符串日期之间的天数差

    Java计算两个字符串日期之间的天数差 调用方法: public static void main(String[] args) throws ParseException { String a = ...

  8. Java8中计算日期时间差

    一.简述 在Java8中,我们可以使用以下类来计算日期时间差异: 1.Period 2.Duration 3.ChronoUnit 二.Period类 主要是Period类方法getYears(),g ...

  9. mysql中计算两个日期的时间差函数TIMESTAMPDIFF用法

    mysql中计算两个日期的时间差函数TIMESTAMPDIFF用法: 语法: TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2) 说明: 返回日 ...

随机推荐

  1. 定义 androidlistview 滚动条位置

    1.找到每一页的最后一条数据的位置 public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, ...

  2. [cocos2d-x·解Bug]关于cocos2d-x游戏在android锁屏状态下播放Bgm的解决方法

    最近<宠物联萌>在三星App上发布遇到一个问题:如果用户在锁定屏幕时解锁解到一半时取消解锁,这时用cocos2d-x开发的游戏就会出现游戏Bgm会恢复播放,但手机屏幕仍然是锁屏状态的Bug ...

  3. 【MySQL】通过select语句把一列数据拼接成一条字符串

    通过 GROUP_CONCAT(如下图)

  4. solr4.5 schema.xml配置文件

    schema.xml配置文件是用于定义index索引库的结构,有点类似于数据表表的定义. 当我们打开schema.xml配置文件时,也许会被里面密密麻麻的代码所吓倒,其实不必惊慌,里面其实就两个东西f ...

  5. Oracle DBA 的常用Unix参考手册(二)

    9.AIX下显示CPU数量    # lsdev -C|grep Process|wc -l10.Solaris下显示CPU数量# psrinfo -v|grep "Status of pr ...

  6. [Everyday Mathematics]20150202

    设 $f:\bbR^2\to \bbR$ 为连续函数, 且满足条件 $$\bex f(x+1,y)=f(x,y+1)=f(x,y),\quad\forall\ (x,y)\in \bbR^2. \ee ...

  7. Codeforces Round #361 (Div. 2) 套题

    A - Mike and Cellphone 问有没有多解,每个点按照给出的序列用向量法跑一遍 #include<cstdio> #include<cstring> #incl ...

  8. [LeetCode] Container With Most Water 简要分析

    前言 这题非要说贪心的话也算是吧,不过最主要的特征还是双指针.LC的题好像不少都是扔倆头尾指针然后遍历一遍完事儿的.这道题倒是“短板效应”的不错体现了. 题目 题目链接 Given n non-neg ...

  9. js中的String数据类型

    string中包含一些特殊的字符字面量,又叫转义序列,\n 意思是换行,\t 意为制表,\b意为空格,\r回车,\\斜杠. 1.ECMAScript中字符串是不可变的. 2.转换字符串的方法:toSt ...

  10. IE 8兼容:X-UA-Compatible的解释

    来源:http://www.ido321.com/940.html 来自StackOverFlow 问题描述: 1: <meta http-equiv="X-UA-Compatible ...