日期相減java
Ⅰ 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 的日期相減的代碼
import java.text.SimpleDateFormat;
import java.util.*;
public class TimeCal {
final private static SimpleDateFormat dateformat = new SimpleDateFormat("yyyyMMdd");
public static void main(String[] args) {
Calendar calendar1 = Calendar.getInstance();
Calendar calendar2 = Calendar.getInstance();
calendar1.set(2009, 0, 1);//0到11表示1到12月
calendar2.set(2009, 0, 2);
long str=calendar2.getTimeInMillis()-calendar1.getTimeInMillis();
System.out.println(dateformat.format(calendar2.getTime())+"與"+dateformat.format(calendar1.getTime())+"隔"+str/(24*60*60*1000)+"天");
}
}
Ⅲ java實現兩個日期相減得到中間的年份和月份
public class DateSimple {
public static void main(String[] args) {
String startTime = "2012-07-01";
String endTime = "2014-07-31";
String[] arg1 = startTime.split("-");
String[] arg2 = endTime.split("-");
int year1 = Integer.valueOf(arg1[0]);
int year2 = Integer.valueOf(arg2[0]);
int month1 = Integer.valueOf(arg1[1]);
int month2 = Integer.valueOf(arg2[1]);
for (int i = year1; i <= year2; i++) {
int monthCount = 12;
int monthStart = 1;
if (i == year1) {
monthStart = month1;
monthCount = 12-monthStart+1;
} else if (i == year2) {
monthCount = month2;
}
for(int j = 0; j < monthCount; j++){
int temp = monthStart+j;
if(temp >=10){
System.out.println(i+"-"+(monthStart+j));
}else{
System.out.println(i+"-0"+(monthStart+j));
}
}
}
}
}
2012-07
2012-08
2012-09
2012-10
2012-11
2012-12
2013-01
2013-02
2013-03
2013-04
2013-05
2013-06
2013-07
2013-08
2013-09
2013-10
2013-11
2013-12
2014-01
2014-02
2014-03
2014-04
2014-05
2014-06
2014-07
Ⅳ 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 兩個日期相減的怎麼做
對已日期相減,最高效的做法就是將二者都轉換成毫秒,相減之後再根據你的需求進行單位轉換,比如你想顯示相差的秒數,就除以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 中 日期如何相加減
這個東西很簡單。
現在是2004-03-26 13:31:40
過去是:2004-01-02 11:30:24
要獲得兩個日期差,差的形式為:XX天XX小時XX分XX秒
方法一:
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try
{
Date d1 = df.parse("2004-03-26 13:31:40");
Date d2 = df.parse("2004-01-02 11:30:24");
long diff = d1.getTime() - d2.getTime();
long days = diff / (1000 * 60 * 60 * 24);
}
catch (Exception e)
{
}
方法二:
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.util.Date now = df.parse("2004-03-26 13:31:40");
java.util.Date date=df.parse("2004-01-02 11:30:24");
long l=now.getTime()-date.getTime();
long day=l/(24*60*60*1000);
long hour=(l/(60*60*1000)-day*24);
long min=((l/(60*1000))-day*24*60-hour*60);
long s=(l/1000-day*24*60*60-hour*60*60-min*60);
System.out.println(""+day+"天"+hour+"小時"+min+"分"+s+"秒");
方法三:
SimpleDateFormat dfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
java.util.Date begin=dfs.parse("2004-01-02 11:30:24");
java.util.Date end = dfs.parse("2004-03-26 13:31:40");
long between=(end.getTime()-begin.getTime())/1000;//除以1000是為了轉換成秒
long day1=between/(24*3600);
long hour1=between%(24*3600)/3600;
long minute1=between%3600/60;
long second1=between%60/60;
System.out.println(""+day1+"天"+hour1+"小時"+minute1+"分"+second1+"秒");
Ⅶ java里日期如何相加減如何計算兩個時間的差值
date1.getTime()-date2.getTime()
Ⅷ 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);
}
}
Ⅸ java中日期怎麼相減
呵呵,你這個錯誤犯得很好,因為偶曾經也犯過。
你去查查calendar的API,看看mouth是從幾開始的,你寫3進去,到底最終的日期是多少呢?
Calendarcalendar=Calendar.getInstance();
calendar.set(2015,3,1);
SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd");
System.out.println(sdf.format(calendar.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毫秒