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怎样得到两个时间段的月份等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)