我正在开发一款从服务器中获取时间的Android应用程序,我想知道的是该时间已经过去了。
我目前正在尝试使用Joda java库,但没有成功。
我试过这个:
public void countTime(){
DateTime now = DateTime.now();
DateTime then = bus.getArrivalDateTime();
int i = now.compareTo(then);
Log.w(LOGTAG, "Difference " + i + " " + now.toString() + " " + then.toString());
if (i > 0) {
Log.w(LOGTAG, "BEFORE");
} else {
Log.w(LOGTAG, "AFTER");
}
}
但是now.compareTo(然后),总是返回1,即使时间已经过去了。 如果它通过3小时并不重要,则compareTo仍显示为1。
我也尝试了isBefore和isBeforeNow,方法却无法得到正确的答案。 日志显示了这一点:
Difference 1 2013-09-22T12:24:23.791+02:00 2013-01-22T12:11:48.000+01:00
答案 0 :(得分:1)
与Period
PeriodType.hours()
差异
DateTime da = new DateTime("2013-09-22T12:24:23.791+02:00");
DateTime db = new DateTime("2013-01-22T12:11:48.000+01:00");
Period difference = new Period(db, da, PeriodType.hours());
int hour = difference.getHours();
输出:5831
它也会照顾不同的TZ
将joda-time-2.1