如何在android中计算两个日期之间的差异
我有android应用程序,我需要显示两个日期之间的差异,但在这种情况下我有一个问题 例如: 试图显示2016年12月28日和2017年1月1日之间的差异时 结果是339天,我如何解决这个问题,当我尝试显示时,我得到了一个正确的结果。这是我的代码:如何在android中计算两个日期之间的差异,android,date,Android,Date,我有android应用程序,我需要显示两个日期之间的差异,但在这种情况下我有一个问题 例如: 试图显示2016年12月28日和2017年1月1日之间的差异时 结果是339天,我如何解决这个问题,当我尝试显示时,我得到了一个正确的结果。这是我的代码: public void Cal() { java.text.SimpleDateFormat simpleDateFormat =new java.text.SimpleDateFormat("yyyy/mm/dd hh:mm:ss")
public void Cal() {
java.text.SimpleDateFormat simpleDateFormat =new java.text.SimpleDateFormat("yyyy/mm/dd hh:mm:ss");
try {
Date date2 = simpleDateFormat.parse("2017/01/01"+ " " + "11:30:00");//end_date
Date date1 = simpleDateFormat.parse("2016/12/28"+ " " + "11:30:00");//start_date
printDifference(date1, date2);
} catch (ParseException e) {
e.printStackTrace();
}
}
public void printDifference(Date startDate, Date endDate) {
long different = endDate.getTime() - startDate.getTime();
System.out.println("startDate : " + startDate);
System.out.println("endDate : "+ endDate);
System.out.println("different : " + different);
long secondsInMilli = 1000;
long minutesInMilli = secondsInMilli * 60;
long hoursInMilli = minutesInMilli * 60;
long daysInMilli = hoursInMilli * 24;
long elapsedDays = different / daysInMilli;
different = different % daysInMilli;
long elapsedHours = different / hoursInMilli;
different = different % hoursInMilli;
long elapsedMinutes = different / minutesInMilli;
different = different % minutesInMilli;
long elapsedSeconds = different / secondsInMilli;
System.out.printf(
"%d days, %d hours, %d minutes, %d seconds%n",
elapsedDays,
elapsedHours, elapsedMinutes, elapsedSeconds);
}
构造
simpleDataFormat
时使用的模式有问题。您使用的是:
yyyy/mm/dd hh:mm:ss
yyyy/MM/dd hh:mm:ss
但你应该用这个:
yyyy/mm/dd hh:mm:ss
yyyy/MM/dd hh:mm:ss
从文档中可以看出,小写的
m
表示一小时内的分钟数,这对于格式字符串的时间戳部分是合适的,而大写的m
表示一年中的月数。构建SimpleDataFormat
时使用的模式有问题。您使用的是:
yyyy/mm/dd hh:mm:ss
yyyy/MM/dd hh:mm:ss
但你应该用这个:
yyyy/mm/dd hh:mm:ss
yyyy/MM/dd hh:mm:ss
从文档中,小写的
m
表示一小时内的分钟数,这对于格式字符串的时间戳部分是合适的,而大写的m
表示一年中的月数。Downvoter:请留下反馈。除此之外,他的其他代码看起来很好,谢谢你,非常非常非常感谢。下面的投票者:请留下反馈。除此之外,他的其他代码看起来很好,谢谢,谢谢