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

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

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

package jodotest;

import javatextParseException;

import javatextSimpleDateFormat;

import javautilDate;

import orgjodatimeDateTime;

import orgjodatimeDays;

import orgjodatimeHours;

import orgjodatimeInterval;

import orgjodatimeMinutes;

import orgjodatimePeriod;

import orgjodatimeSeconds;

/

@author wanggang

/

public class Test {

public static void test1(Date d1, Date d2){

// 毫秒ms

long diff = d2getTime() - d1getTime();

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);

Systemoutprint("时间相差:");

Systemoutprint(diffDays + " 天 ");

Systemoutprint(diffHours + " 小时 ");

Systemoutprint(diffMinutes + " 分钟 ");

Systemoutprint(diffSeconds + " 秒");

Systemoutprintln();

}

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

DateTime dt1 = new DateTime(d1);

DateTime dt2 = new DateTime(d2);

Systemoutprint("时间相差:");

Systemoutprint(DaysdaysBetween(dt1, dt2)getDays() + " 天 ");

Systemoutprint(HourshoursBetween(dt1, dt2)getHours() % 24 + " 小时 ");

Systemoutprint(MinutesminutesBetween(dt1, dt2)getMinutes() % 60 + " 分钟 ");

Systemoutprint(SecondssecondsBetween(dt1, dt2)getSeconds() % 60+ " 秒");

Systemoutprintln();

}

public static void test3(Date d1, Date d2){

Interval interval = new Interval(d1getTime(), d2getTime());

Period p = intervaltoPeriod();

Systemoutprintln("时间相差:"+pgetDays()+" 天 " + pgetHours()+ " 小时 "+pgetMinutes()+" 分钟"+pgetSeconds()+" 秒");

}

/

@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 = formatparse(dateStart);

Date d2 = formatparse(dateStop);

test1(d1, d2);

test2(d1, d2);

test3(d1, d2);

}

}

程序输出:

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

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

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

没太明白你要干嘛?就是要验证一个时间是否在系统时间之后1小时?简单的写了一个类你看一下……importjavautilCalendar;importjavautilGregorianCalendar;publicclassSolution{//系统时间Calendarsystem=newGregorianCalendar();//这个是那个要比较的时间,我这里写死了,具体的根据你的情况拿到就可以了Calendarmy=newGregorianCalendar(2011,1,20,20,40,40);//2011年1月20日20:40:40publicstaticvoidmain(String[]args){Systemoutprintln(newSolution()judge());}//判断方法publicbooleanjudge(){//将系统时间拨后一小时systemset(CalendarHOUR_OF_DAY,systemget(CalendarHOUR_OF_DAY)+1);//after方法进行比较returnmyafter(system);}}至于怎么把YYYY-MM-DDHH24:mm:ss转成Calendar如下:Strings=newString("2011-1-2020:11:11");DateFormatf=newSimpleDateFormat("yyyy-MM-DDHH:mm:ss");try{Dated=(Date)fparse(s);Calendarc=newGregorianCalendar();csetTime(d);}catch(ParseExceptionex){exprintStackTrace();}建议楼主多用Calendar整个jdk下还是Calendar健全一些Date比较混乱可以用用IBM的joda-time不错的时间处理库……

import javautilCalendar;

import javautilGregorianCalendar;

public class Test {

public static void main(String[] args) {

Calendar c_begin = new GregorianCalendar();

Calendar c_end = new GregorianCalendar();

c_beginset(2012, 5, 30);

c_endset(2012, 11, 5);

while (c_beginbefore(c_end)) {

int m = c_beginget(CalendarMONTH) + 1;

Systemoutprintln(m);

c_beginadd(CalendarMONTH, 1);

}

}

}

public int getDaysOfMonth(LocalDate localDate){

DateTime dateTime = new DateTime(localDategetYear(), localDategetMonthOfYear(), 14, 12, 0, 0, 000);

return dateTimedayOfMonth()getMaximumValue();

}

以上就是关于使用joda-time工具类 计算时间相差多少 天,小时,分钟,秒全部的内容,包括:使用joda-time工具类 计算时间相差多少 天,小时,分钟,秒、Java问题,某表对应的实体类为A,有一时间字段t,格式为yyyy-MM-dd hh:mm:ss。现在要count最近十日内每一、java怎样得到两个时间段的月份等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9455218.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存