试图在2个DateTime对象之间找出Joda Time的时差

时间:2016-10-08 18:02:43

标签: android datetime jodatime android-jodatime

我试图使用Joda Time找到2次之间的差异。我已经尝试过使用这里的一些示例,但无法获得返回值。以下是我尝试的内容:时间是17:23这样的格式,来往变量的时区是America / Los_Angeles或Europe / London

    DateTime dtFrom = DateTime.now()
    DateTime dtTo = new DateTime(dtFrom.withZone(DateTimeZone.forID(to)));
    //calculate time difference
    Period period = new Period(dtTo, dtFrom) ;
    Minutes minutes = Minutes.minutesBetween(dtFrom, dtTo);
    long diffInMillis = dtFrom.getMillis() - dtTo.getMillis();

我尝试使用不同的方法来比较这两个并且总是没有返回值...句点返回PT0S,分钟返回PT0M,diffInMillis返回0.我在这里做错了什么?谢谢!

1 个答案:

答案 0 :(得分:2)

您正在使用自1970-01-01T00:00Z以来以毫秒为单位定义为保留(POSIX)即时的方法withZone()。因此,dtFromdtTo仍然具有相同的即时意义,即它们描述相同的全球时间,尽管它们的本地时间表示由于不同的时区而不同。

结果:无论您使用哪个时间单位,两个相同时刻之间的差异都恰好等于零。

但是,如果您对本地时差感兴趣,请确定区域偏移差异,例如使用getOffset()方法。