導航:首頁 > 編程語言 > 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判斷兩個時間相關的資料

熱點內容
人工智慧演算法是多少位進制 瀏覽:920
發出命令的人 瀏覽:515
androidmainxml 瀏覽:109
des可逆加密演算法 瀏覽:249
aix查看系統信息常用命令 瀏覽:154
phpmemcache實例 瀏覽:249
爆槍源碼 瀏覽:567
編程大佬能記住所有代碼 瀏覽:859
如何批量注冊國家反詐app 瀏覽:527
實現ping命令 瀏覽:19
cmd進入管理員命令 瀏覽:479
pdf在線編輯修改 瀏覽:967
文件夾是只讀是什麼意思 瀏覽:88
伺服器如何知道訪問域名 瀏覽:319
java網路編程實驗總結 瀏覽:86
linux下dns伺服器配置 瀏覽:707
我的命令是絕對的 瀏覽:932
助飛器app在哪裡下 瀏覽:64
無廣告win10解壓縮 瀏覽:476
台灣的伺服器怎麼選雲伺服器 瀏覽:813