【发布时间】:2013-11-28 11:14:43
【问题描述】:
对于可能会在这里绊倒的其他人,此问题中引用的链接会产生误导性结果
我的第一次约会:1986-04-08。当前日期: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 类。
-
现在我很困惑下面的一个答案说这个计算更精确,否定了夏令时等等。我现在也担心闰年..
-
检查 Calender 类是否确实提供了这样的方法,而不是您自己的实现。我想夏令时不会影响你的结果。
标签: java android android-date