Ⅰ 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+" 天");
}
運行結果如下:
(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 類實現了這個介面。
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中,字元串類型的日期格式,如:「18:20:56」和「15:12:45」怎麼比較大小
字元串可以直接比較,日期型的話可以裝換成1970年1月1日起的長整型數字再來比較。
Ⅲ java中兩個字元串如何比較大小
有三種方法實現
第一種直接用字元串類的compareTo方法:
Stringt1="20131011";
Stringt2="20131030";
intresult=t1.compareTo(t2);
第二種是把這個日期字元串轉換成long:
SimpleDateFormatsdf=newSimpleDateFormat("yyyyMMdd");
Dated1=sdf.parse(t1);
Dated2=sdf.parse(t2);
longresult=d1.getTime()-d2.getTime();
第三種是把日期字元串轉換成整形int:
intint1=Integer.parseInt(t1);
intint2=Integer.parseInt(t2);
intresult=int1-int2;
註:result大於0,則t1>t2;
result等於0,則t1=t2;
result小於0,則t1<t2;
Ⅳ java中如何比較兩個時間字元串的大小
一種思路:用 SimpleDateFormat 來處理,可以轉成long形式的,那是1970年1月1日起到現在的毫秒數。可以直接比大小了。
另外一種思路:因為你這里是用的補全格式(7月寫成了07),那麼可以直接字面轉了比較
public static void main(String[] _s) {
String str1 = "2010-07-16 12:00:00";
long longstr1 = Long.valueOf(str1.replaceAll("[-\\s:]",""));
System.out.println(longstr1);
}
這個結果是20100716120000,就這個意思,直接字面轉成long形式後比
Ⅳ 在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);
}
}
Ⅵ java字元串日期排序比較問題
排序么?
importjava.text.Format;
importjava.text.SimpleDateFormat;
importjava.util.ArrayList;
importjava.util.Collections;
importjava.util.Comparator;
importjava.util.Date;
importjava.util.List;
publicclassTest{
publicstaticvoidmain(Stringargs[]){
System.out.println("字元串比較");
test1();
System.out.println("Date比較");
test2();
}
privatestaticvoidtest1(){
List<String>data=init();
System.out.println("排序前"+data);
Collections.sort(data,newComparator<String>(){
publicintcompare(Stringo1,Stringo2){
String[]arr1=o1.split("_");
String[]arr2=o2.split("_");
intcomparator=toInt(arr1[0],-1)-toInt(arr2[0],-2);
if(comparator==0){
comparator=toInt(arr1[1],-1)-toInt(arr2[1],-2);
if(comparator==0){
returntoInt(arr1[2],-1)-toInt(arr2[2],-2);
}
}
returncomparator;
}
});
System.out.println("排序後"+data);
}
privatestaticvoidtest2(){
List<String>data=init();
System.out.println("排序前"+data);
finalFormatf=newSimpleDateFormat("yyyy-MM-dd");
Collections.sort(data,newComparator<String>(){
publicintcompare(Stringo1,Stringo2){
Dated1;
Dated2;
try{
d1=(Date)f.parseObject(o1);
d2=(Date)f.parseObject(o2);
returnd1.compareTo(d2);
}catch(Exceptione){
e.printStackTrace();
}
return0;
}
});
System.out.println("排序後"+data);
}
privatestaticList<String>init(){
List<String>data=newArrayList<String>();
data.add("2013-3-3");
data.add("2012-4-4");
returndata;
}
privatestaticinttoInt(Stringstr,intdelVal){
try{
returnInteger.parseInt(str);
}catch(Exceptione){
returndelVal;
}
}
}
字元串比較
排序前[2013-3-3, 2012-4-4]
排序後[2012-4-4, 2013-3-3]
Date比較
排序前[2013-3-3, 2012-4-4]
排序後[2012-4-4, 2013-3-3]
Ⅶ java如何判斷兩個日期字元串相差多少天
沒有這樣的函數,但是你自己可以封裝一個這樣的函數。
一般來說,並不計算兩個日期相差的月數以及年數,因為月的天數以及年的天數並不是固定的,所以很多倒計時最多計算到天。
函數體:
SimpleDateFormat sf = new SimpleDateFormat("yyyyMMdd");
String a="20140301";
String b = "20140225";
Long c = sf.parse(b).getTime()-sf.parse(a).getTime();
long d = c/1000/60/60/24;//天
System.out.println(d+"天");
只要將a,b當做參數傳過去,將天數返回就可以