导航:首页 > 编程语言 > java判断两个时间

java判断两个时间

发布时间:2025-06-01 13:41:01

java计算两个日期时间相差几天,几小时,几分钟等

思路是先计算两个日期相差的毫秒数,然后分别根据每天的毫秒数、每小时的毫秒数、每分钟的毫秒数来计算相差几天,几小时,几分钟。具体代码如下:

public static String getDatePoor(Date endDate, Date nowDate) {

long nd = 1000 * 24 * 60 * 60;//每天毫秒数

long nh = 1000 * 60 * 60;//每小时毫秒数

long nm = 1000 * 60;//每分钟毫秒数

long diff = endDate.getTime() - nowDate.getTime();// 获得两个时间的毫秒时间差异

long day = diff / nd; // 计算差多少天

long hour = diff % nd / nh;// 计算差多少小时

long min = diff % nd % nh / nm; // 计算差多少分钟

return day + "天" + hour + "小时" + min + "分钟";

}

然后做一个测试,调用这个方法测试一下:

可以看出两个日期时间相差几天,几小时,几分钟都可以算出来。

(1)java判断两个时间扩展阅读:

Java使用以下三种告辩方法来比较两个日期:

1、使用 getTime() 方基橘法获取两个日期(自1970年1月1日经历的毫秒数值),然后比较这两个值。

2、使用方法 before(),after() 和 equals()。例如,一个月的12号比18号早,则 new Date(99, 2, 12).before(new Date (99, 2, 18)) 返回true。

3、使用 compareTo() 方法,它是由 Comparable 接口定义的,Date 类实搏友团现了这个接口。

Ⅱ java 中怎么比较两个时间相差的秒数

方法:

java 计算两个时间相差可以用getTime()来获得两个时间的毫秒数,可以这样计算得出两个时间的秒数的相差如下:

public int calLastedTime(Date startDate) {long a = new Date().getTime();long b = startDate.getTime();int c = (int)((a - b) / 1000);return c;}

(2)java判断两个时间扩展阅读:

1、通过Date类来获取当前时间

Date day=new Date();

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

System.out.println(df.format(day));

2、通过System类中的currentTimeMillis方法来获取当前时间

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); System.out.println(df.format(System.currentTimeMillis()));

3、通过Calendar类来获取当前时间

Calendar c = Calendar.getInstance();//可以对每个时间域单独修改

int year = c.get(Calendar.YEAR);

int month = c.get(Calendar.MONTH);

int date = c.get(Calendar.DATE);

System.out.println(year + "/" + month + "/" + date + " " +hour + ":" +minute + ":" + second);

4、 通过Date类来获取当前时间

Date date = new Date();

String year = String.format("%tY", date);

String month = String.format("%tB", date);

String day = String.format("%te", date);

System.out.println("今天是:"+year+"-"+month+"-"+day);

Ⅲ java中如何计算出两个日期之间相差多少天

思路就是根据它们相差的毫秒数除以每天的毫秒数(60*60*24*1000),代码如下:

public static void main(String[] args) throws ParseException {

String date1="1987-01-01";

String date2="2010-01-01";

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-mm-dd");

Date d1=sdf.parse(date1);

Date d2=sdf.parse(date2);

long daysBetween=(d2.getTime()-d1.getTime()+1000000)/(60*60*24*1000);

System.out.println("1987-01-01 与 2010-01-01 相隔 "+daysBetween+" 天");

}

运行结果如下:

(3)java判断两个时间扩展阅读:

Java使用以下三种方法来比较两个日期:

1、使用 getTime() 方法获取两个日期(自1970年1月1日经历的毫秒数值),然后比较这两个值。

2、使用方法 before(),after() 和 equals()。例如,一个月的12号比18号早,则 new Date(99, 2, 12).before(new Date (99, 2, 18)) 返回true。

3、使用 compareTo() 方法,它是由 Comparable 接口定义的,Date 类实现了这个接口。

SimpleDateFormat 是一个以语言环境敏感的方式来格式化和分析日期的类。SimpleDateFormat 允许你选择任何用户自定义日期时间格式来运行

例如:

SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd hh:mm:ss");

这一行代码确立了转换的格式,其中 yyyy 是完整的公元年,MM 是月份,dd 是日期,HH:mm:ss 是时、分、秒。

注意:有的格式大写,有的格式小写,例如 MM 是月份,mm 是分;HH 是 24 小时制,而 hh 是 12 小时制。

以上实例编译运行结果如下:

当前时间为: 2018-09-14 10:16:34

菜鸟教程-Java 日期时间

Ⅳ java 判断两个时间段是不是有交集

publicclassDateKit{
/**
时间段的比较处理,如果包含了传来的时段了,就说明时间冲突了
*@return
*/
publicstaticbooleanisContain(Date[]a,Date[]b){

longastatr=a[0].getTime();
longaend=a[1].getTime();

longbstatr=b[0].getTime();
longbend=b[1].getTime();

//a0包在了b0~b1之间
if(astatr>=bstatr&&astatr<=bend)returntrue;

//b0包在了a0~a1之间
if(astatr<=bstatr&&aend>=bstatr)returntrue;

returnfalse;
}

/**
时间段的比较处理,如果包含了传来的时段了,就说明时间冲突了,(允许首尾相等而不包含的情况)
*@return
*/
(Date[]a,Date[]b){

longastatr=a[0].getTime();
longaend=a[1].getTime();

longbstatr=b[0].getTime();
longbend=b[1].getTime();

//a0包在了b0~b1之间
if(astatr>=bstatr&&astatr<bend)returntrue;

//b0包在了a0~a1之间
if(astatr<=bstatr&&aend>bstatr)returntrue;

//相等
if(astatr==bstatr&&aend==bend)returntrue;

returnfalse;
}

//功能工具扩展

publicstaticbooleanisContain(Stringastatr,Stringaend,Stringbstatr,Stringbend){
returnisContain(newString[]{astatr,aend},newString[]{bstatr,bend});
}

publicstaticbooleanisContain(String[]aStr,String[]bStr){
returnisContain(aStr,bStr,"yyyy-MM-ddHH:mm:ss");
}

publicstaticbooleanisContain(String[]aStr,String[]bStr,Stringpattern){
finalSimpleDateFormatSF=newSimpleDateFormat(pattern);
try{
returnisContain(newDate[]{SF.parse(aStr[0]),SF.parse(aStr[1])},newDate[]{SF.parse(bStr[0]),SF.parse(bStr[1])});
}catch(Exceptione){
e.printStackTrace();
}
returnfalse;
}

(Stringastatr,Stringaend,Stringbstatr,Stringbend){
returnisContainEnd(newString[]{astatr,aend},newString[]{bstatr,bend});
}

(String[]aStr,String[]bStr){
returnisContainEnd(aStr,bStr,"yyyy-MM-ddHH:mm:ss");
}

(String[]aStr,String[]bStr,Stringpattern){
finalSimpleDateFormatSF=newSimpleDateFormat(pattern);
try{
returnisContainEnd(newDate[]{SF.parse(aStr[0]),SF.parse(aStr[1])},newDate[]{SF.parse(bStr[0]),SF.parse(bStr[1])});
}catch(Exceptione){
e.printStackTrace();
}
returnfalse;
}

}

测试:

publicstaticvoidmain(String[]args)throwsParseException{
finalSimpleDateFormatSF=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");

Date[]a={SF.parse("2017-07-0611:53:00"),SF.parse("2017-07-0614:52:00")};
Date[]b={SF.parse("2017-07-0614:52:00"),SF.parse("2017-07-0616:52:00")};

System.out.println("您好,智能的电脑!请问:");
for(Datedate:a){
System.out.print(date.toString()+"~");
}
System.out.println("包含:");
for(Datedate:b){
System.out.print(date.toString()+"~");
}
System.out.println("吗?");

booleanret=DateKit.isContain(a,b);
System.out.println("o(∩_∩)o哈哈~我猜是:"+ret);

ret=DateKit.isContainEnd(a,b);
System.out.println("o(∩_∩)o哈哈~允许首尾相等我猜是:"+ret);

}

找了半天, 没见写的好的. 自己动手写个, 问题是 两个时段,, 大部分人给的是 两个时间点..

阅读全文

与java判断两个时间相关的资料

热点内容
网吧怎么租服务器 浏览:274
ansys画圆命令流 浏览:774
腾讯云盘服务器地址 浏览:762
无损压缩可以压文档嘛 浏览:115
人工智能编译视频 浏览:525
什么新闻app比较真实 浏览:348
自制编译器自制编程语言 浏览:112
python常态开发 浏览:134
复制加密卡到荣耀手表 浏览:680
dellemc服务器如何安装系统 浏览:706
python爬取整个网页 浏览:665
程序员搞笑图片上线 浏览:777
杜pdf 浏览:234
小米直播服务器地址 浏览:488
redhatlinux服务 浏览:549
APP页面顶端展示画面叫什么 浏览:821
python两点间距离 浏览:184
新程序员珠海和武汉哪个适合发展 浏览:276
爬取vip视频python代码 浏览:669
单片机中trisd什么意思 浏览:130