当前位置:首页 » 编程语言 » java日期相减

java日期相减

发布时间: 2025-04-15 21:42:48

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实现两个日期相减得到中间的年份和月份

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 两个日期相减的怎么做

对已日期相减,最高效的做法就是将二者都转换成毫秒,相减之后再根据你的需求进行单位转换,比如你想显示相差的秒数,就除以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 如何将日期年份相减

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);
}
}

热点内容
pilpython安装 发布:2025-04-25 17:12:55 浏览:804
安卓手机usb偏好设置在哪里 发布:2025-04-25 17:02:53 浏览:572
梁箍筋加密区间 发布:2025-04-25 17:02:10 浏览:425
大同忘记密码找回多少钱 发布:2025-04-25 16:55:22 浏览:985
手机ip被加入黑名单限制访问 发布:2025-04-25 16:40:51 浏览:731
内网的服务器地址怎么查 发布:2025-04-25 16:29:32 浏览:926
视频缓存下载浏览器 发布:2025-04-25 16:21:53 浏览:1002
批量抖音脚本 发布:2025-04-25 15:58:10 浏览:836
运行极品飞车电脑要有什么配置 发布:2025-04-25 15:51:35 浏览:418
sql动态传参数 发布:2025-04-25 15:37:50 浏览:631