使用joda-time工具类 计算时间相差多少 天,小时,分钟,秒

下面程序使用了两种方法计算两个时间相差 天,小时,分钟,秒

package jodotest;

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.Interval;
import org.joda.time.Minutes;
import org.joda.time.Period;
import org.joda.time.Seconds;

/**
* @author wanggang
*
*/
public class Test {
public static void test1(Date d1, Date d2){

// 毫秒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 + " 秒.");
System.out.println();
}

public static void test2(Date d1, Date d2) throws ParseException{

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+ " 秒.");
System.out.println();
}

public static void test3(Date d1, Date d2){
Interval interval = new Interval(d1.getTime(), d2.getTime());
Period p = interval.toPeriod();
System.out.println("时间相差:"+p.getDays()+" 天 " + p.getHours()+ " 小时 "+p.getMinutes()+" 分钟"+p.getSeconds()+" 秒");
}
/**
* @param args
* @throws ParseException
*/
publicstaticvoid main(String[] args)throwsParseException{
String dateStart ="2013-08-13 16:29:58";
String dateStop ="2013-08-13 16:31:48";

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

Date d1 = format.parse(dateStart);
Date d2 = format.parse(dateStop);
test1(d1, d2);
test2(d1, d2);
test3(d1, d2);
}
}

程序输出:

时间相差:0 天 0 小时 1 分钟 50 秒.

时间相差:0 天 0 小时 1 分钟 50 秒.

时间相差:0 天 0 小时 1 分钟50 秒

 

 

可以看看,两种写法的优缺点。

参考:sourceforge地址: http://sourceforge.net/projects/joda-time/files/joda-time/

http://1985wanggang.blog.163.com/blog/static/7763833201371341545546/

 

时间: 2024-11-02 11:54:41

使用joda-time工具类 计算时间相差多少 天,小时,分钟,秒的相关文章

[工具类]将时间转换为unix时间戳格式

写在前面 由于在数据库中存的时间有时间戳格式的数据,在解析以及保存的时候,就需要考虑到数据格式的兼容性问题.看到数据库中的时间字段基本上都是以时间戳格式存储的,没办法,只能将时间进行转换了,考虑到其他系统可能要对时间字段进行操作,就不得不考虑时间的兼容性了. 时间戳辅助类 什么是时间戳? Unix时间戳(Unix timestamp),或称Unix时间(Unix time).POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间1970年01月01日00时00分00秒(

java计算两个时间相差天数的方法汇总_java

问题描述: 输入:两个日期 输出:两个日期相差的天数 具体代码实现 方法1: 通过Calendar类的日期比较.注意:这里需要考虑一下: 日期是跨年份的,如一个是2012年,一个是2015年的 年份是分闰年和平年的,各自的天数不同 /** * date2比date1多的天数 * @param date1 * @param date2 * @return */ public static int differentDays(Date date1,Date date2) { Calendar cal

代码片段:基于 JDK 8 time包的时间工具类 TimeUtil

知识的工作者必须成为自己时间的首席执行官. 前言 这次泥瓦匠带来的是一个好玩的基于 JDK 8 time包的时间工具类 TimeUtil.本意,用 JDK 8 写个实战的时间工具类,初版泥瓦匠写的很不好,后来雨神分分钟将这个代码优化优化,谢谢雨神.就此分享下这个代码,让更多的人看到~ 一. Java 8 time包 从 Java 1.0 有个 Date 类,想必大家不陌生,后面有了 Calendar 类(被废弃 ).API 确实比较难用,因此 Java 8 引入 java.time API,这次

计算java常用类型字节大小的工具类

问题描述 /***Name:Sizeof.java*Copyright:zhaozhihua**/packagecom.tywire.tadu.utils;importjava.lang.reflect.Array;importjava.lang.reflect.Field;importjava.lang.reflect.Modifier;importjava.util.Enumeration;importjava.util.HashMap;importjava.util.Hashtable;i

常用时间日期工具类集合

import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.GregorianCalendar; import java.util.StringTokenizer; import org.apache.mina.proxy.util

php 计算两个时间相差的天数、小时数、分钟数、秒数详解及实例代码_php实例

php计算两个时间相差的天数.小时数.分钟数.秒数 PHP中计算两个时间相差的天数.小时数.分钟数.秒数不如其它语言方便,但搞清了PHP中时间的表示方法后也很简单.本文章向大家讲解php如何计算时间相差.需要的码农可以参考一下. 先看下面这个网上给的例子:  //$startdate是开始时间,$enddate是结束时间 <?php $startdate="2011-3-15 11:50:00"; $enddate="2012-12-12 12:12:12";

最全的java时间处理工具类

package com.momo.util;import java.io.Serializable;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.GregorianCalendar;/** * @company:hrj * @author:章小飞 * @since:2007-12-3

Java 中按文件名称分类,按文件大小分类,按照文件类型分类,按照最后修改时间分类的工具类

在此博客中用到了文件操作的工具类,可以连接 Java中实现复制文件到文件,复制文件到文件夹,复制文件夹到文件,删除文件,删除文件夹,移动文件,移动文件夹的工具类 package cn.edu.hactcm.cfcms.utils; import java.io.File;import java.util.HashSet;import java.util.Set; import javax.swing.JOptionPane;/** * 文件分类中用到的所有工具类 * CFMS    :Compu

Simple Chrono 1.0.0.4发布 计算时间工具

Simple Chrono易于使用的,简洁且友好的用户界面.可以计算时间,获得几次的时间保存在一个文本文件中,这一切,或只是很容易复制到剪贴板. Simple Chrono 1.0.0.4这个版本增加了一个状态条,通知新的事件功能. 下载地址:http://pierre.dalbianco.free.fr/simplechrono/