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

作者&投稿:貂省 (若有异议请与网页底部的电邮联系)
使用joda-time工具类 计算时间相差多少 天,小时,分钟,秒~

附上代码: Date date = new Date("2014/1/10 18:20"); Date date2 = new Date("2014/1/11 3:5"); long temp = date2.getTime() - date.getTime(); //相差毫秒数 long hours = temp / 1000 / 3600; //相差小时数 long temp2 = temp % (1000 * 3...

下面程序使用了两种方法计算两个时间相差 天,小时,分钟,秒
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
*/
public static void main(String[] args) throws ParseException {
String dateStart = "2013-08-13 16:29:58";
String dateStop = "2013-08-13 16:31:48";

SimpleDateFormat format = new SimpleDateFormat("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 秒

下面程序使用了两种方法计算两个时间相差 天,小时,分钟,秒
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
*/
public static void main(String[] args) throws ParseException {
String dateStart = "2013-08-13 16:29:58";
String dateStop = "2013-08-13 16:31:48";

SimpleDateFormat format = new SimpleDateFormat("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 秒


峡江县18871213615: 使用joda - time工具类 计算时间相差多少 天,小时,分钟,秒 -
哀荔孟得: 附上代码: Date date = new Date("2014/1/10 18:20"); Date date2 = new Date("2014/1/11 3:5"); long temp = date2.getTime() - date.getTime(); //相差毫秒数 long hours = temp / 1000 / 3600; //相差小时数 long temp2 = temp % (1000 * 3...

峡江县18871213615: Java中导入了.jar的库,但是怎么才能使用库里的method啊? -
哀荔孟得: 比如你将 joda-time的jar加到Build Path后就可以 import org.joda.time.DateTime; DateTime now = DateTime.now();

峡江县18871213615: org.joda.time.localdate 获得某个月有多少天 -
哀荔孟得: public int getDaysOfMonth(LocalDate localDate){DateTime dateTime = new DateTime(localDate.getYear(), localDate.getMonthOfYear(), 14, 12, 0, 0, 000);return dateTime.dayOfMonth().getMaximumValue();}

峡江县18871213615: 如果在JAVA中获得指定时间 -
哀荔孟得: import java.util.*; import java.text.*; public class Test1 {public static void main(String [] args){ Scanner s=new Scanner(System.in);int day=s.nextInt();Calendar c=Calendar.getInstance();c.add(Calendar.DAY_OF_MONTH, day);...

峡江县18871213615: 不同地区(Locale)默认时间输出格式 -
哀荔孟得: System.out.println(DateFormat.getDateInstance(DateFormat.FULL, l).format(new Date())); DateFormat.FULL为输出样式,参加下面的定义/** * Constant for full style pattern. */ public static final int FULL = 0; /** * Constant for long style pattern. */ ...

峡江县18871213615: java回调函数问题? -
哀荔孟得: 下面使用java回调函数来实现一个测试函数运行时间的工具类: 如果我们要测试一个类的方法的执行时间,通常我们会这样做: java 代码 public class TestObject { /** * 一个用来被测试的方法,进行了一个比较耗时的循环 */ public static ...

峡江县18871213615: activiti中发邮件怎么搞 -
哀荔孟得: 包含了所有Activiti的jar包(和源代码jar包).依赖没有用这种方式发布. Activiti引擎必须的依赖如下所示(通过mvn dependency:tree生成): orgmons:commons-email:jar:1mons:commons-lang3:jar:3.1:compile +- org.mybatis:mybatis:jar:3.1.1:...

峡江县18871213615: java怎么计算程序的运行时间 -
哀荔孟得: 运行前记录一个时间点T1,运行结束再记录一个时间点T2. T2-T1 就是程序运行时间.

峡江县18871213615: 上海七浦路属于哪个区?
哀荔孟得: 属于闸北区.七浦路东起于上海市虹口区的江西北路,西止于静安区的热河路,全长... 再看今年,好的时候都只有六七千元,不好的时候一天只能卖三四千元.我从2006年...

峡江县18871213615: 如何查找jar包的dependency -
哀荔孟得: 在项目中需要使用到某个jar包时,我们一般会用maven导入该jar,但是该jar需要依赖一些别的jar包,这时你想找出这个jar包到底依赖了哪些包,或者这么说,你有一个需求:把pom.xml中所有的dependency的依赖树状图勾画出来. 具体的做法...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网