當前位置:首頁 » 編程語言 » javadate減date

javadate減date

發布時間: 2024-01-31 06:14:57

java 時間(Date)相減為何出現負數

你的問題其實跟日期沒關系,你的問題其實可以描述為下面這樣:
long diff = 2160000000;
int result = (int)(diff)/1000/60/60/24;
System.out.println(result);
為什麼經過計算後result結果為負數,原因是因為在java語言中int類型的取值范圍是:-2147483648~2147483647,而你給的long型的diff超出了2147483647的最大值,導致最高位符號位變成了1,於是經過強制類型轉換(int)(diff)之後,已經就是一個負數了,所以除法運算的結果也就成了負數。而當diff等於2073600000的時候,這個值並沒有超出int類型的范圍,所以計算出的結果是正數

② java如何進行時間加減

1.用java.util.Calender來實現

Calendar calendar=Calendar.getInstance();
calendar.setTime(new Date());
System.out.println(calendar.get(Calendar.DAY_OF_MONTH));//今天的日期
calendar.set(Calendar.DAY_OF_MONTH,calendar.get(Calendar.DAY_OF_MONTH)+1);//讓日期加1
System.out.println(calendar.get(Calendar.DATE));//加1之後的日期Top

2.用java.text.SimpleDateFormat和java.util.Date來實現

Date d=new Date();
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
System.out.println("今天的日期:"+df.format(d));
System.out.println("兩天前的日期:" + df.format(new Date(d.getTime() - 2 * 24 * 60 * 60 * 1000)));
System.out.println("三天後的日期:" + df.format(new Date(d.getTime() + 3 * 24 * 60 * 60 * 1000)));

GregorianCalendar gc=new GregorianCalendar();
gc.setTime(new Date);
gc.add(field,value);
value為正則往後,為負則往前
field取1加1年,取2加半年,取3加一季度,取4加一周
取5加一天....

③ 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類是非線程安全的,所以在高並發下需要加同步鎖,否則會出現靈異事件。

④ java如何計算日期的加減

第一種,知道日期,如2019091109144
String str=txnTime;
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");//格式化輸出日期
Date dt = null;
try {
dt = sdf.parse(str);
} catch (ParseException e) {
// TODO 自動生成的 catch 塊
e.printStackTrace();
}
Calendar rightNow = Calendar.getInstance();
rightNow.setTime(dt);
rightNow.add(Calendar.YEAR,-1);//日期減1年
rightNow.add(Calendar.MONTH,3);//日期加3個月
rightNow.add(Calendar.DAY_OF_YEAR,10);//日期加10天
rightNow.add(Calendar.SECOND,60);//日期加60秒天
Date dt1=rightNow.getTime();
String reStr = sdf.format(dt1);
System.out.println(reStr);
第二種,自己獲取時間,格式化輸出計算加減
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");//格式化輸出日期
Date now = new Date();
long time = 60*1000;//60秒
Date afterDate = new Date(now .getTime() + time);//60秒後的時間
Date beforeDate = new Date(now .getTime() - time);//60秒前的時間
System.out.println(sdf.format(afterDate ));

⑤ 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.text.Format;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class Admin {

private static Format f = new SimpleDateFormat("yyyy-MM-dd");

public static void main(String... args) {

Date thisYear = new Date();
System.out.println(formatDate2YYYYMMDD(thisYear));

Date lastYear = lastYear(thisYear);
System.out.println(formatDate2YYYYMMDD(lastYear));
}

private static Date lastYear(Date thisYear) {
Calendar c = Calendar.getInstance();
c.setTime(thisYear);
c.add(Calendar.YEAR, -1);
return c.getTime();
}

private static String formatDate2YYYYMMDD(Date date) {
return f.format(date);
}
}

熱點內容
wow刷碎片腳本 發布:2024-11-29 15:58:24 瀏覽:590
明小子源碼 發布:2024-11-29 15:15:30 瀏覽:143
蘋果8plus什麼配置 發布:2024-11-29 14:16:36 瀏覽:677
androidmvp結構 發布:2024-11-29 14:16:34 瀏覽:536
androidsqlite命令 發布:2024-11-29 14:04:38 瀏覽:156
信用卡分期演算法 發布:2024-11-29 13:50:56 瀏覽:807
安卓手機dll文件為什麼打不開 發布:2024-11-29 13:40:49 瀏覽:1002
百分之五十石碳酸怎麼配置 發布:2024-11-29 13:38:56 瀏覽:972
我的世界伺服器如何裝資源包 發布:2024-11-29 13:25:48 瀏覽:22
mc伺服器的ip是什麼 發布:2024-11-29 13:23:33 瀏覽:568