本文目錄一覽:
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 計算某日期 多少天后的日期
java計算某日期之後的日期,可以參考如下代碼:
public static void main(String[] args) {
// 時間表示格式可以改變,yyyyMMdd需要寫例如20160523這種形式的時間
SimpleDateFormat sdf = new SimpleDateFormat(“yyyy/MM/dd”);
String str = “2016/05/23”;
// 將字符串的日期轉為Date類型,ParsePosition(0)表示從第一個字符開始解析
Date date = sdf.parse(str, new ParsePosition(0));
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
// add方法中的第二個參數n中,正數表示該日期後n天,負數表示該日期的前n天
calendar.add(Calendar.DATE, -10);
Date date1 = calendar.getTime();
String out = sdf.format(date1);
System.out.println(out);
}
java中計算兩個日期之間差的天數
分類: 電腦/網絡 程序設計 其他編程語言
問題描述:
比如兩個日期:2005-12-31和2006-01-05,怎麼才能精確的計算出這兩個日期之間差的天數?
望回答的詳細一些,謝了先.
解析:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
class Test2 {
public static String getDate(){
SimpleDateFormat ft = new SimpleDateFormat(“yyyy/MM/dd”);
Date dd = new Date();
return ft.format(dd);
}
public static long getQuot(String time1, String time2){
long quot = 0;
SimpleDateFormat ft = new SimpleDateFormat(“yyyy/MM/dd”);
try {
Date date1 = ft.parse( time1 );
Date date2 = ft.parse( time2 );
quot = date1.getTime() – date2.getTime();
quot = quot / 1000 / 60 / 60 / 24;
} catch (ParseException e) {
e.printStackTrace();
}
return quot;
}
public static void main(String[] args) throws Exception {
String date1 = “2008/8/8”;
String date2 = getDate();
long day = getQuot(date1,date2);
System.out.println( “距離 “+date1+” 還有 “+day+” 天” );
}
}
你看一下這段代碼,是從今天到2008/8/8的天數。
Date的getTime()方法返回自1970年1月1日午夜(通用時間)以來的毫秒數。
用2008/8/8的getTime()減去今天的getTime()就是這兩天相差的毫秒數,1秒=1000毫秒,1分鐘=60秒,1小時=60分鐘,1天=24小時,然後除除除就得到天數了。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/227242.html