當前位置:首頁 » 編程語言 » java日期比較

java日期比較

發布時間: 2022-10-15 07:40:50

⑴ 如何用java代碼比較兩個日期

首先 按照一定的格式輸入兩個日期的字元串
然後用SimpleDateFormat類轉換成Date實例date1, date2
然後
Calendar cal1 = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
cal1.setTime(date1);
cal2.setTime(date2);
這樣你就有了兩個表示所輸入日期的Calendar實例了

Calendar可以做很多事
比如用cal1.after(cal2)或者cal1.before(cal2)或者cal1.equals(cal2)或者cal1.compareTo(cal2)來比較兩個日期時間先後
比如cal.get(Calendar.YEAR)可以得到表示該日期年份的整數
同理cal.get(Calendar.MONTH)可以得到月份
甚至可以用cal.getTimeInMillis()得到表示該日期的毫秒數

有了這些方法,簡單的計算之後就可以得到需要的相差的信息

如果樓主是來求現成的源代碼的- - 我沒有

⑵ java 日期怎麼比較大小

例子:

String beginTime=new String("2017-06-09 10:22:22");
String endTime=new String("2017-05-08 11:22:22");

  • 直接用Date自帶方法before()和after()比較

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

Date sd1=df.parse(beginTime);
Date sd2=df.parse(endTime);

System.out.println(sd1.before(sd2));
System.out.println(sd1.after(sd2));

  • 用String的compareTo()方法:

Integer i=beginTime.compareTo(endTime);

System.out.println(i);

返回正值是代表左側日期大於參數日期,反之亦然,日期格式必須一致

  • 轉成date格式換成秒數比較秒數大小,getTime()方法

Date sd1=df.parse(beginTime);
Date sd2=df.parse(endTime);

long long1 =sd1.getTime()

long long2= sd2.getTime()

(2)java日期比較擴展閱讀:

Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程 。

Java具有簡單性、面向對象、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點。Java可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等。

⑶ 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怎樣比較兩個日期的大小

比較getTime獲取的整數值大小即可,整數值大的時間就大,整數值小的時間就小
例如:

1
2
3
4
5
6
7
8
9
10
11

public int compareDate(Date d1,Date d2){
if (dt1.getTime() > dt2.getTime()) {
System.out.println("dt1 在dt2前");
return 1;
} else if (dt1.getTime() < dt2.getTime()) {
System.out.println("dt1在dt2後");
return -1;
} else {//相等
return 0;
}
}

⑸ java怎麼比較兩個日期(年和月)的大小

你好,沒有這樣的函數。不過我可以給你一段比較的代碼。希望對你有幫助。代碼如下:import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date; /**
*
* @author hp
*/
public class test { public static void main(String args[]) {
int i= compare_date("2009-11-12 15:21", "2009-12-11 09:59");
System.out.println("i=="+i);
} public static int compare_date(String DATE1, String DATE2) {

DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm");
try {
Date dt1 = df.parse(DATE1);
Date dt2 = df.parse(DATE2);
if (dt1.getTime() > dt2.getTime()) {
System.out.println("dt1 在dt2前");
return 1;
} else if (dt1.getTime() < dt2.getTime()) {
System.out.println("dt1在dt2後");
return -1;
} else {
return 0;
}
} catch (Exception exception) {
exception.printStackTrace();
}
return 0;
}
}

⑹ 如何用java比較兩個時間或日期的大小

首先
按照一定的格式輸入兩個日期的字元串
然後用simpledateformat類轉換成date實例date1,
date2
然後
calendar
cal1
=
calendar.getinstance();
calendar
cal2
=
calendar.getinstance();
cal1.settime(date1);
cal2.settime(date2);
這樣你就有了兩個表示所輸入日期的calendar實例了
calendar可以做很多事
比如用cal1.after(cal2)或者cal1.before(cal2)或者cal1.equals(cal2)或者cal1.compareto(cal2)來比較兩個日期時間先後
比如cal.get(calendar.year)可以得到表示該日期年份的整數
同理cal.get(calendar.month)可以得到月份
甚至可以用cal.gettimeinmillis()得到表示該日期的毫秒數
有了這些方法,簡單的計算之後就可以得到需要的相差的信息
如果樓主是來求現成的源代碼的-
-
我沒有

⑺ 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 www.javawind.net
*/

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這方面的知識。

⑻ 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 + "分鍾";

}

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

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

(8)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中日期時間比較
java.text.SimpleDateFormat 類 ----時間日期格式化
java.util.Date類 ----構造時間日期
java.util.Date類compareTo方法 ----比較日期時間
java中日期時間的比較要用到java.text.SimpleDateFormat 類和java.util.Date類compareTo方法,SimpleDateFormat類用於時間日期格式化,將日期時間格式化為制定的格式,compareTo方法用於比較日期時間。以下為我寫過的程序片段:

String data=doc.getItemValueString("fd_ngr");
//擬稿時間
String data4=data.substring(data.indexOf(' '),data.length());
int panan=data4.indexOf("-");
int panan1=data4.indexOf("/");
ec_dbsy=vi_dbsy.getAllEntries();
//構造日期格式yyyy-MM-NN
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat formatter2 = new SimpleDateFormat("MM/dd/yyyy");
if(data4.length()!=0)
{
if (panan!=-1){
try {
Date date1 = formatter.parse(data4);
Date date0=new Date();
Date date2 =formatter.parse("2006-08-31");
Date date3=formatter.parse("2006-07-01");

int number1=date1.compareTo(date2);
int number2=date1.compareTo(date3);

//返回 0 表示時間日期相同
//返回 1 表示日期1>日期2
//返回 -1 表示日期1<日期2
if( number2==1)
{
if(number1==-1)
{
System.out.println("日期格式符合要求!");
System.out.println("日期格式符合要求的yyyy-MM-dd的文檔ID是:"+doc.getUniversalID());
String mPath="\\"+"\\10.52.4.4\\d$\\Program Files\\WebSphere\\AppServer\\installedApps\\oa1\\oaWeb20061030_war.ear\\oaWeb20061030.war\\doc_fw";
DaglImpl daglImpl = new DaglImpl();
daglImpl.addFW(doc,mPath); //歸檔處理

}
}

} catch (ParseException e) {
e.printStackTrace();
}
}

⑽ 在java的程序里date類型怎麼比較大小呀

有兩個方法:

方法一:

兩個Date類型的變數可以通過compareTo方法來比較。此方法的描述是這樣的:如果參數 Date 等於此 Date,則返回值 0;如果此 Date 在 Date 參數之前,則返回小於 0 的值;如果此 Date 在 Date 參數之後,則返回大於 0 的值。

(10)java日期比較擴展閱讀:

Date類可以在java.util包中找到,用一個long類型的值表示一個指定的時刻。它的一個有用的構造函數是Date(),它創建一個表示創建時刻的對象。

getTime()方法返回Date對象的long值。在下面的程序中,我使用Date()構造函數創建一個表示程序運行時刻的對象,並且利用getTime()方法找到這個日期代表的毫秒數量:

import java.util.*;

public class Now {

public static void main(String[] args) {

Date now = new Date();

long nowLong = now.getTime();

System.out.println("Value is " + nowLong);

}

}

熱點內容
搭建郵件伺服器的方法 發布:2024-12-23 12:27:27 瀏覽:430
資料庫說明文檔 發布:2024-12-23 12:22:12 瀏覽:620
安卓手機玩mc卡怎麼辦 發布:2024-12-23 12:15:46 瀏覽:5
mt編譯時出現錯誤信息 發布:2024-12-23 12:15:45 瀏覽:107
雙存儲冗餘 發布:2024-12-23 12:09:16 瀏覽:664
解壓縮太慢 發布:2024-12-23 12:08:36 瀏覽:535
linux恢復誤刪文件 發布:2024-12-23 11:59:36 瀏覽:493
平板電腦賬號登錄伺服器錯誤 發布:2024-12-23 11:41:07 瀏覽:99
金蝶kis專業版資料庫表 發布:2024-12-23 11:35:41 瀏覽:602
相冊已經加密如何改密碼 發布:2024-12-23 11:32:20 瀏覽:277