为别人谁可能绊倒在这里,链接refered对这个问题给出了误导性的结果我试图计算两个日期之间的差异,以秒为单位。 (Java/Android设备)
我的第一次约会:1986年4月8日。当前日期:2013-11-28。
代码:
public long seconds(Date date){
String formattedDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss",getResources().getConfiguration().locale).format(Calendar.getInstance().getTime());
String DateStr=String.valueOf(formattedDate);
Date d = null;
try {
d = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss",getResources().getConfiguration().locale).parse(DateStr);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
java.sql.Date dx = new java.sql.Date(d.getTime());
Date d1 = date;
Date d2 = dx;
t4.setText("BirthDate"+date+"\n Current Date:"+dx);
long seconds = (d2.getTime()-d1.getTime())/1000;
return seconds;
}
然而,当我在这里检查的结果:http://www.calculator.net/age-calculator.html?today=04%2F04%2F1986&ageat=11%2F28%2F2013&x=32&y=10它给了我一个略有不同的结果。我不确定我出错的地方。
在上面的第二个(日期日期){}实现中,您将在几秒钟内获得差异。当你将秒转换成年龄差异时,你需要考虑1986年到2003年间的闰年。最好的方法是利用Calendar类。 – MAkS
现在我很困惑下面的一个答案说,这个计算更精确,否定夏令时和所有。我现在也很担心闰年.. – Skynet
检查Calender类是否确实提供了其他明智的自己实现的方法。我猜日光节约不应该影响你的结果。 – MAkS