使用Joda知道时间已超过某一点

时间:2013-09-22 10:12:54

标签: java android date datetime jodatime

我正在开发一款从服务器中获取时间的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

1 个答案:

答案 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

与Android联合起来