① 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类是非线程安全的,所以在高并发下需要加同步锁,否则会出现灵异事件。