java比較兩個時間相差,可以使用calender類的api,實例如下:
成都創(chuàng)新互聯(lián)公司專注于桂平企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站設(shè)計,商城網(wǎng)站制作。桂平網(wǎng)站建設(shè)公司,為桂平等地區(qū)提供建站服務(wù)。全流程按需規(guī)劃網(wǎng)站,專業(yè)設(shè)計,全程項目跟蹤,成都創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)
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)則為當(dāng)前時間
* @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)) { // 循環(huán)對比,直到相等,n 就是所要的結(jié)果
//list.add(df.format(c1.getTime())); // 這里可以把間隔的日期存到數(shù)組中 打印出來
n++;
if(stype==1){
c1.add(Calendar.MONTH, 1); // 比較月份,月份+1
}
else{
c1.add(Calendar.DATE, 1); // 比較天數(shù),日期+1
}
}
n = n-1;
if(stype==2){
n = (int)n/365;
}
System.out.println(date1+" -- "+date2+" 相差多少"+u[stype]+":"+n);
return n;
}
/**
* 得到當(dāng)前日期
* @return
*/
public static String getCurrentDate() {
Calendar c = Calendar.getInstance();
Date date = c.getTime();
SimpleDateFormat simple = new SimpleDateFormat("yyyy-MM-dd");
return simple.format(date);
}
}
運行結(jié)果:
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網(wǎng)上看看,有介紹Java這方面的知識。
現(xiàn)在是2004-03-26 13:31:40
過去是:2004-01-02 11:30:24
要獲得兩個日期差,差的形式為:XX天XX小時XX分XX秒
方法一:
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try
{
Date d1 = df.parse("2004-03-26 13:31:40");
Date d2 = df.parse("2004-01-02 11:30:24");
long diff = d1.getTime() - d2.getTime();
long days = diff / (1000 * 60 * 60 * 24);
}
catch (Exception e)
{
}
方法二:
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.util.Date now = df.parse("2004-03-26 13:31:40");
java.util.Date date=df.parse("2004-01-02 11:30:24");
long l=now.getTime()-date.getTime();
long day=l/(24*60*60*1000);
long hour=(l/(60*60*1000)-day*24);
long min=((l/(60*1000))-day*24*60-hour*60);
long s=(l/1000-day*24*60*60-hour*60*60-min*60);
System.out.println(""+day+"天"+hour+"小時"+min+"分"+s+"秒");
方法三:
SimpleDateFormat dfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.util.Date begin=dfs.parse("2004-01-02 11:30:24");
java.util.Date end = dfs.parse("2004-03-26 13:31:40");
long between=(end.getTime()-begin.getTime())/1000;//除以1000是為了轉(zhuǎn)換成秒
long day1=between/(24*3600);
long hour1=between%(24*3600)/3600;
long minute1=between%3600/60;
long second1=between%60/60;
System.out.println(""+day1+"天"+hour1+"小時"+minute1+"分"+second1+"秒");
====================================================
java 比較時間大小
String s1="2008-01-25 09:12:09";
String s2="2008-01-29 09:12:11";
java.text.DateFormat df=new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.util.Calendar c1=java.util.Calendar.getInstance();
java.util.Calendar c2=java.util.Calendar.getInstance();
try
{
c1.setTime(df.parse(s1));
c2.setTime(df.parse(s2));
}catch(java.text.ParseException e){
System.err.println("格式不正確");
}
int result=c1.compareTo(c2);
if(result==0)
System.out.println("c1相等c2");
else if(result0)
System.out.println("c1小于c2");
else
System.out.println("c1大于c2");
思路就是根據(jù)它們相差的毫秒數(shù)除以每天的毫秒數(shù)(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+" 天");
}
運行結(jié)果如下:
擴展資料:
Java使用以下三種方法來比較兩個日期:
1、使用 getTime() 方法獲取兩個日期(自1970年1月1日經(jīng)歷的毫秒數(shù)值),然后比較這兩個值。
2、使用方法 before(),after() 和 equals()。例如,一個月的12號比18號早,則 new Date(99, 2, 12).before(new Date (99, 2, 18)) 返回true。
3、使用 compareTo() 方法,它是由 Comparable 接口定義的,Date 類實現(xiàn)了這個接口。
SimpleDateFormat 是一個以語言環(huán)境敏感的方式來格式化和分析日期的類。SimpleDateFormat 允許你選擇任何用戶自定義日期時間格式來運行
例如:
SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd hh:mm:ss");
這一行代碼確立了轉(zhuǎn)換的格式,其中 yyyy 是完整的公元年,MM 是月份,dd 是日期,HH:mm:ss 是時、分、秒。
注意:有的格式大寫,有的格式小寫,例如 MM 是月份,mm 是分;HH 是 24 小時制,而 hh 是 12 小時制。
以上實例編譯運行結(jié)果如下:
當(dāng)前時間為: 2018-09-14 10:16:34
參考資料:
Java官方API接口-Date
菜鳥教程-Java 日期時間
java 計算兩個時間相差可以用getTime()來獲得兩個時間的毫秒數(shù),可以這樣計算得出兩個時間的秒數(shù)的相差如下:
public? int calLastedTime(Date startDate) {
long a = new Date().getTime();
long b = startDate.getTime();
int c = (int)((a - b) / 1000);
return c;
}
擴展資料:
Java是一門面向?qū)ο缶幊陶Z言,不僅吸收了C++語言的各種優(yōu)點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特征。Java語言作為靜態(tài)面向?qū)ο缶幊陶Z言的代表,極好地實現(xiàn)了面向?qū)ο罄碚?,允許程序員以優(yōu)雅的思維方式進(jìn)行復(fù)雜的編程? 。
Java具有簡單性、面向?qū)ο?、分布式、健壯性、安全性、平臺獨立與可移植性、多線程、動態(tài)性等特點 。Java可以編寫桌面應(yīng)用程序、Web應(yīng)用程序、分布式系統(tǒng)和嵌入式系統(tǒng)應(yīng)用程序等? 。
參考資料:百度百科-JAVA
java 計算兩個時間相差可以用getTime()來獲得兩個時間的毫秒數(shù),可以這樣計算得出兩個時間的秒數(shù)的相差如下:
Date?a?=?new?Date();
Thread.sleep(3000);
Date?b?=?new?Date();
long?interval?=?(b.getTime() -?a.getTime())/1000;
System.out.println("兩個時間相差"+interval+"秒").
Java 平臺是基于 Java 語言的平臺。這樣的平臺非常流行。因此微軟公司推出了與之競爭的.NET平臺以及模仿Java的C#語言。java的應(yīng)用已十分廣泛。Java是功能完善的通用程序設(shè)計語言,可以用來開發(fā)可靠的、要求嚴(yán)格的應(yīng)用程序。Java的用途:80%以上的高端企業(yè)級應(yīng)用都使用JAVA平臺(電信、銀行等)。
當(dāng)前題目:時間間隔比較java代碼 java時間比大小
轉(zhuǎn)載注明:http://jinyejixie.com/article16/dodopgg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、營銷型網(wǎng)站建設(shè)、網(wǎng)站導(dǎo)航、定制網(wǎng)站、網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)