java比較時間
A. 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 類實現了這個介面。
B. 如何用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()得到表示該日期的毫秒數
有了這些方法,簡單的計算之後就可以得到需要的相差的信息
如果樓主是來求現成的源代碼的-
-
我沒有
C. 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這方面的知識。
D. java中如何進行時間比較
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String aa = "2012-1-12";
String bb = "2010-12-01";
Calendar cal = Calendar.getInstance();
Calendar cal2 = Calendar.getInstance();
cal.setTime(sdf.parse(aa));
cal2.setTime(sdf.parse(bb));
//
cal.add(Calendar.MONTH, 3);
if (cal.after(cal2)) {
System.out.println("aa + 3個月 在 bb 之後" );
}
cal.setTime(sdf.parse(aa));
cal.add(Calendar.DATE, 5);
if (cal.after(cal2)) {
System.out.println("aa + 5天 在 bb 之後" );
}
} catch (Exception e) {
}
E. 在java的程序里date類型怎麼比較大小呀
有兩個方法:
方法一:
兩個Date類型的變數可以通過compareTo方法來比較。此方法的描述是這樣的:如果參數 Date 等於此 Date,則返回值 0;如果此 Date 在 Date 參數之前,則返回小於 0 的值;如果此 Date 在 Date 參數之後,則返回大於 0 的值。
(5)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);
}
}
F. Java中如何比較時間(小時/分/秒)的大小
有兩個包里有日期的類型,不知道樓主想用哪個?java.util.Date和java.sql.Timestamp兩都可以,後面是面對資料庫的,before(),after(),equals()就可以比較兩個時間之間的關系了!
××××××××××××××××××××××××××××××××××××××××××××
SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.util.Date nows=new java.util.Date();
java.util.Date date=dateFormat.parse("2005-09-12 12:36:29");
long hous=(nows.getTime()-date.getTime())/(60*60*1000);
轉換成long在比較 可以得到日期相差的時間
×××××××××××××××××××××××××××××××××××××××××××××
date1, date2;
long l1=date1.getTime();
long l2=date2.getTime();
if(l1>l2)
{
//說明date1比較新
}
else if(l1 == l2)
{
//說明date1和date2一樣
}
else
{
//說明date2比較新
}
×××××××××××××××××××××××××××××××××××××××××
SimpleDateFormat dateFormat=new SimpleDateFormat(sPatten);
String sText = dateFormat.format(dateValue);
得到sText後你愛怎麼比就怎麼比呀
sPatten =「yyyy」 取年
sPatten =「MM」 取月
sPatten =「dd」 取日
sPatten =「HH」 取小時
sPatten =「mm」 取分
sPatten =「ss」 取秒
××××××××××××××××××××××××××××××××××××××××××
Date date1 = .....
Date date2 = .....
Calendar cal = Calendar.getInstance();
cal.setTime(date1);
int n1 = Calendar.get(Calendar.DATE);
cal.setTime(date2);
int n2= Calendar.get(Calendar.DATE);
if (n1 == n2) {
}
......
G. java如何比較具體時間
給你點思路吧
比如你要用2008-03-15和今天比較
1、取出兩個時間來,如果是從資料庫取出,最好使用java.sql.Timestamp格式的時間,現在時間為:Date now = new Date() ;
2、將取出的兩個時間進行格式化:使用java.text.SimpleDateFormat
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd") ;//將日期格式化為:yyyy-MM-dd
String n = formatter.format(now) ; // 將當前時間進行格式化
3、比較:使用String類型的比較:compareTo // 看API
如:資料庫取出的時間如果是String類型的話,直接使用就行
如果取出的時間是Timestamp類型,將其轉化成String類型
formatter.format(資料庫的timestamp類型).compareTo(n);
以上是基本的一些操作,LZ可以根據自己的需求來改,我的主要的思路就是通過String 類型進行比較
H. 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()
(8)java比較時間擴展閱讀:
Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程 。
Java具有簡單性、面向對象、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點。Java可以編寫桌面應用程序、Web應用程序、分布式系統和嵌入式系統應用程序等。
I. java代碼中怎麼比較時間的大小
比較getTime獲取的整數值大小即可,整數值大的時間就大,整數值小的時間就小
例如:
publicintcompareDate(Dated1,Dated2){
if(dt1.getTime()>dt2.getTime()){
System.out.println("dt1在dt2前");
return1;
}elseif(dt1.getTime()<dt2.getTime()){
System.out.println("dt1在dt2後");
return-1;
}else{//相等
return0;
}
}
還有:
importjava.text.SimpleDateFormat;
importjava.util.Date;
publicclassDate_Test{
publicstaticvoidmain(String[]args){
Dated1=newDate();//第一個時間
Dated2=newDate();//第二個時間
SimpleDateFormatf=newSimpleDateFormat("hhmmss");//格式化為hhmmss
intd1Number=Integer.parseInt(f.format(d1).toString());//將第一個時間格式化後轉為int
intd2Number=Integer.parseInt(f.format(d2).toString());//將第二個時間格式化後轉為int
if(d1Number>d2Number){
System.out.println("時間d1大");
System.out.println(d1Number);
}
else{
System.out.println("時間d2大");
System.out.println(d2Number);
}
}
}
J. Java怎樣比較兩個時間的大小
比較getTime獲取的整數值大小即可,整數值大的時間就大,整數值小的時間就小
例如:
publicintcompareDate(Dated1,Dated2){
if(dt1.getTime()>dt2.getTime()){
System.out.println("dt1在dt2前");
return1;
}elseif(dt1.getTime()<dt2.getTime()){
System.out.println("dt1在dt2後");
return-1;
}else{//相等
return0;
}
}