java比較兩個時間的差值,java計算兩個時間相差時間

本文目錄一覽:

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+” 天”);

}

運行結果如下:

擴展資料:

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官方API介面-Date

菜鳥教程-Java 日期時間

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 + “分鐘”;

}

然後做一個測試,調用這個方法測試一下:

可以看出兩個日期時間相差幾天,幾小時,幾分鐘都可以算出來。

擴展資料:

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 類實現了這個介面。

參考資料:

Oracle官方API介面-Util-Date

Oracle官方API介面-SimpleDateFormat

菜鳥教程-Java 日期時間

Java比較兩個時間相差多少天,多少個月,多少年

java比較兩個時間相差,可以使用calender類的api,實例如下:

package com.test;

import java.text.DateFormat;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

/**

* @description 日期比較天 月 年

* @author

*/

public class DateTest {

public static void main(String[] args) {

String date = “2008-06-12”;

DateTest.compareDate(date, null, 0);

DateTest.compareDate(date, null, 1);

DateTest.compareDate(date, null, 2);

date = “2006-06-03”;

DateTest.compareDate(date, null, 0);

DateTest.compareDate(date, null, 1);

DateTest.compareDate(date, null, 2);

DateTest.compareDate(date, “2009-06-01”, 0);

DateTest.compareDate(date, “2009-06-01”, 1);

DateTest.compareDate(date, “2009-06-01”, 2);

}

/**

* @param date1 需要比較的時間 不能為空(null),需要正確的日期格式

* @param date2 被比較的時間 為空(null)則為當前時間

* @param stype 返回值類型 0為多少天,1為多少個月,2為多少年

* @return

*/

public static int compareDate(String date1,String date2,int stype){

int n = 0;

String[] u = {“天”,”月”,”年”};

String formatStyle = stype==1?”yyyy-MM”:”yyyy-MM-dd”;

date2 = date2==null?DateTest.getCurrentDate():date2;

DateFormat df = new SimpleDateFormat(formatStyle);

Calendar c1 = Calendar.getInstance();

Calendar c2 = Calendar.getInstance();

try {

c1.setTime(df.parse(date1));

c2.setTime(df.parse(date2));

} catch (Exception e3) {

System.out.println(“wrong occured”);

}

//List list = new ArrayList();

while (!c1.after(c2)) { // 循環對比,直到相等,n 就是所要的結果

//list.add(df.format(c1.getTime())); // 這裡可以把間隔的日期存到數組中 列印出來

n++;

if(stype==1){

c1.add(Calendar.MONTH, 1); // 比較月份,月份+1

}

else{

c1.add(Calendar.DATE, 1); // 比較天數,日期+1

}

}

n = n-1;

if(stype==2){

n = (int)n/365;

}

System.out.println(date1+” — “+date2+” 相差多少”+u[stype]+”:”+n);

return n;

}

/**

* 得到當前日期

* @return

*/

public static String getCurrentDate() {

Calendar c = Calendar.getInstance();

Date date = c.getTime();

SimpleDateFormat simple = new SimpleDateFormat(“yyyy-MM-dd”);

return simple.format(date);

}

}

運行結果:

2008-06-12 — 2009-06-09 相差多少天:362

2008-06-12 — 2009-06-09 相差多少月:12

2008-06-12 — 2009-06-09 相差多少年:0

2006-06-03 — 2009-06-09 相差多少天:1102

2006-06-03 — 2009-06-09 相差多少月:36

2006-06-03 — 2009-06-09 相差多少年:3

2006-06-03 — 2009-06-01 相差多少天:1094

2006-06-03 — 2009-06-01 相差多少月:36

2006-06-03 — 2009-06-01 相差多少年:2

可以參考上面的程序,如果還有什麼不明白的,可以自己去ITjob網上看看,有介紹Java這方面的知識。

原創文章,作者:MPQR,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/149947.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
MPQR的頭像MPQR
上一篇 2024-11-05 16:55
下一篇 2024-11-05 16:55

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • 利用Python實現兩個鏈表合併為一個有序鏈表

    對於開發工程師來說,實現兩個鏈表合併為一個有序鏈表是必須掌握的技能之一。Python語言在鏈表處理上非常便利,本文將從多個方面詳細闡述如何利用Python實現兩個鏈表合併為一個有序…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29

發表回復

登錄後才能評論