1、计算两个日期相差天数。

一般来说,并不计算两个日期相差的月数以及年数,因为月的天数以及年的天数并不是固定的,所以很多倒计时最多计算到天。下面举个例子,计算系统时间距“2013-9-15 12:21:21”的相差时间,精确到秒。

String a="2013-9-15 12:21:21";

Date date = new Date();

SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String b = sf.format(date);

Long c = sf.parse(b).getTime()-sf.parse(a).getTime();

long s = c/1000%60;//秒

long m = c/1000/60%60;//分

long h = c/1000/60/60%24;//时

long d = c/1000/60/60/24;//天

System.out.println(d+"天"+h+"时"+m+"分"+s+"秒");

2、计算一个日期前n天的日期。

因为每个月的日期不定,所以不能用日期减去天数来计算。

一般只计算到前几天,并不计算前几秒。

long day = 1000*24*60*60;//一天的毫秒数

Date date = new Date();

SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String time1 = sf.format(date);//获取本地时间

Long c = sf.parse(time1).getTime()-(day*Long.parseLong(50));//计算本地时间前50天的日期

Date date1 = new Date(c);//将相差天数的long类型转换为date

String time = sf.format(date1);//转换为String类型输出

System.out.println("距本地时间前50天的日期为:"+time);


进×××流: 178483774