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

Trying to find time difference in Joda Time between 2 DateTime objects

我正在尝试使用 Joda Time 找出 2 次之间的区别。我已尝试使用此处的一些示例,但无法获得 return 的值。这是我尝试过的方法:时间的格式如 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();

我尝试使用不同的方法来比较这两者,但始终没有得到任何值 returned...周期 returns PT0S,分钟 returns PT0M,和 diffInMillis returns 0.我在这里做错了什么?谢谢!

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

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

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