android两个时间段相减,两个日期之间的Android差异

Digvesh Pate..

148

DateTimeUtils obj = new DateTimeUtils();

SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd/M/yyyy hh:mm:ss");

try {

Date date1 = simpleDateFormat.parse("10/10/2013 11:30:10");

Date date2 = simpleDateFormat.parse("13/10/2013 20:35:55");

obj.printDifference(date1, date2);

} catch (ParseException e) {

e.printStackTrace();

}

//1 minute = 60 seconds

//1 hour = 60 x 60 = 3600

//1 day = 3600 x 24 = 86400

public void printDifference(Date startDate, Date endDate) {

//milliseconds

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);

}

out put是:

startDate : Thu Oct 10 11:30:10 SGT 2013

endDate : Sun Oct 13 20:35:55 SGT 2013

different : 291945000

3 days, 9 hours, 5 minutes, 45 seconds

错误:无法将DateTimeUtils解析为类型. (6认同)

这假定存在JodaTime(DateTimeUtils来自该lib).库是如此之大,我个人避免在大多数Android项目中使用它以避免达到臭名昭着的Dex方法限制.答案至少应该提到它依赖于一些外部库.顺便说一句,在我看来,如果一个人决定使用外部lib时间,那么它应该是ThreeTenABP,而不是Joda.对于当前的情况,我希望只使用时间戳就足够了. (4认同)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值