① java實現兩個日期相減得到中間的年份和月份
沒有編譯環境,提供一下思路:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
Calendar calendar = Calendar.getInstance();//日歷對象
calendar.setTime(date1);//設置起始日期
while(calendar.getTime() <= date2)
{
System.out.println(sdf.format(calendar.getTime()));
calendar.add(Calendar.MONTH, 1);//月份加一
}
② java 中 日期如何相加減
Date類的getTime()方法返回long型,單位時毫秒。因此對兩個Date調用getTime()方法後相減並除以相應數字換算單位即可。
③ java 中 日期怎麼相加減
JAVA Calendar類提供了2個方法:add() 和 roll()。
Calendar cal = Calendar.getInstance();
add(f, delta) 將 delta 添加到 f 欄位中。這等同於調用 set(f, get(f) + delta),
roll(f, delta) 將 delta 添加到 f 欄位中,但不更改專更大的屬欄位。這等同於調用 add(f, delta)
如果要計算2個日期之間的差距,可以取得自1970 年 1 月 1 日的 00:00:00.000各自的毫秒數字,然後相減
long millionSecondsForDate1 = date1.getTime();
long millionSecondsForDate2 = date2.getTime();
long julianSeconds = millionSecondsForDate1 - millionSecondsForDate2 ;
然後你可以轉化為你想要得時間,注意毫秒和秒之間進位是1000
1秒 = 1000毫秒
④ 如何用JAVA把兩個時間相減
調試過的程序,可以直接運行`!!!!!!
import java.util.Date;
import com.ibm.icu.text.SimpleDateFormat;
public class mss {
public mss() {
}
public long fromDateStringToLong(String inVal) { //此方法計算時間毫秒
Date date = null; //定義時間類型
SimpleDateFormat inputFormat = new SimpleDateFormat("yyyy-mm-dd hh:ss");
try {
date = inputFormat.parse(inVal); //將字元型轉換成日期型
} catch (Exception e) {
e.printStackTrace();
}
return date.getTime(); //返回毫秒數
}
private static String dqsj() { //此方法用於獲得當前系統時間(格式類型2007-11-6 15:10:58)
Date date = new Date(); //實例化日期類型
String today = date.toLocaleString(); //獲取當前時間
System.out.println("獲得當前系統時間 "+today); //顯示
return today; //返回當前時間
}
public static void main(String[] args) {
String dqsj = dqsj(); //獲得String dqsj = dqsj(); //獲得當前系統時間
mss df = new mss(); //實例化方法
long startT=df.fromDateStringToLong("2005-03-03 14:51:23"); //定義上機時間
long endT=df.fromDateStringToLong("2004-03-03 13:50:23"); //定義下機時間
long ss=(startT-endT)/(1000); //共計秒數
int MM = (int)ss/60; //共計分鍾數
int hh=(int)ss/3600; //共計小時數
int dd=(int)hh/24; //共計天數
System.out.println("共"+dd+"天 准確時間是:"+hh+" 小時 "+MM+" 分鍾"+ss+" 秒 共計:"+ss*1000+" 毫秒");
}
}
這是執行結果``
獲得當前系統時間 2007-11-6 15:57:39
共366天 准確時間是:8785 小時 527100 分鍾31626001 秒 共計:31626001000 毫秒
⑤ java中如何得到兩個時間相差多少小時
比較簡單的方法就是使用.getTime()獲取當前日期的相對毫秒數,再計算差值,最後轉換成你需要的數據;
PS.
RESULT:
1天0小時0分0秒
相隔的小時數:分:秒 - 24:0:0
⑥ java中如何實現日期相減
求兩個日期之間相隔的天數:
Java代碼示例:回
java.text.SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-dd");
java.util.Date beginDate= format.parse("2007-12-24");
java.util.Date endDate= format.parse("2007-12-25");
long day=(date.getTime()-mydate.getTime())/(24*60*60*1000);
System.out.println("相隔的天答數="+day);
⑦ java里日期如何相加減如何計算兩個時間的差值
date1.getTime()-date2.getTime()
⑧ java 兩個日期相減的怎麼做
對已日期相減,最高效的做法就是將二者都轉換成毫秒,相減之後再根據你的需求進行單位轉換,比如你想顯示相差的秒數,就除以1000,以此類推,翠花,上代碼:
/*隨便選兩個時間*/
Stringd1="2015-04-17";
Stringd2="2015-06-17";
/*先轉成毫秒並求差*/
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");
longm=sdf.parse(d2).getTime()-sdf.parse(d1).getTime();
/*根據你的需求進行單位轉換*/
System.out.println("相差毫秒數:"+m);
System.out.println("相差天數:"+(m/(1000*60*60*24)));
要注意的地方:
時間格式可能有很多種,比如20150611或者2015年6月11日等等。所以你需要以對應的方式來初始化SimpleDateFormat對象。
例如20150611,就要寫成:
SimpleDateFormatsdf=newSimpleDateFormat("yyyyMMdd");
SimpleDateFormat類是非線程安全的,所以在高並發下需要加同步鎖,否則會出現靈異事件。