java计算时间差,格式为年月日,比如2012年1月1日 - 2013年2月2日,求两个值之间的时间差为 1年1月1日。 5
3个回答
2013-04-08 · 知道合伙人数码行家
关注
展开全部
//给你一个例子,代码有需要修改的地方,请提问者自行修改
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
class Test2 {
public static String getDate(){
SimpleDateFormat ft = new SimpleDateFormat("yyyy/MM/dd");
Date dd = new Date();
return ft.format(dd);
}
public static long getQuot(String time1, String time2){
long quot = 0;
SimpleDateFormat ft = new SimpleDateFormat("yyyy/MM/dd");
try {
Date date1 = ft.parse( time1 );
Date date2 = ft.parse( time2 );
quot = date1.getTime() - date2.getTime();
quot = quot / 1000 / 60 / 60 / 24;
} catch (ParseException e) {
e.printStackTrace();
}
return quot;
}
public static void main(String[] args) throws Exception {
String date1 = "2008/8/8";
String date2 = getDate();
long day = getQuot(date1,date2);
System.out.println( "距离 "+date1+" 还有 "+day+" 天" );
}
}
/**
*你看一下这段代码,是从今天到2008/8/8的天数。
*Date的getTime()方法返回自1970年1月1日午夜(通用时间)以来的毫秒数。
*用2008/8/8的getTime()减去今天的getTime()就是这两天相差的毫秒数,1秒*=1000毫秒,1分钟=60秒,1小时=60分钟,1天=24小时,然后除除除就得到天数*了。
**/
展开全部
这个东西不能这样写,1年1月1日,你说的1年是365天还是366天,万一有闰年呢?1月到底是哪个月?30天的还是31天,还是28、29?由于年的具体时间不确定,有365,有366,月的也不确定。只有1天是24小时,固定不变,所以你求两个时间之间的差值,只能用天这个单位,java.util.Calendar这个类可以操作日期,看看API帮助你会获益很多。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你好,这个问题的具体代码如下
(比如计算2004-03-26 13:31:40和2004-01-02 11:30:24的时间差):
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+"秒");
希望可以帮到你。
(比如计算2004-03-26 13:31:40和2004-01-02 11:30:24的时间差):
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+"秒");
希望可以帮到你。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询