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

熱點內容
python做前端開發 瀏覽:892
網吧怎麼租伺服器 瀏覽:276
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