用Joda-Time计算持续时间

blo*_*ell 4 java timezone jodatime dst leap-year

我正在尝试使用Joda-Time来了解两个时间点之间的持续时间,其中每个点都在其自己的本地时区中给出.

例如:

DateTime ny = new DateTime(2011, 2, 2, 7, 0, 0, 0, DateTimeZone.forID("America/New_York"));
DateTime la = new DateTime(2011, 2, 3, 10, 15, 0, 0, DateTimeZone.forID("America/Los_Angeles"));
DateTime utc1 = ny.withZone(DateTimeZone.UTC);
DateTime utc2 = la.withZone(DateTimeZone.UTC);        
Period period = new Period(utc1, utc2);
Run Code Online (Sandbox Code Playgroud)

现在,我想知道这是否考虑到日光节省和闰年...而且,使用'Period'是正确的Joda-Time方式来实现这一目标吗?谢谢 ;)

Rus*_*ard 10

您提供的代码将起作用并考虑时区,但您无需转换为UTC.这段代码更简单并且做同样的事情(使用持续时间而不是句点):

DateTime ny = new DateTime(2011, 2, 2, 7, 0, 0, 0, DateTimeZone.forID("America/New_York"));
DateTime la = new DateTime(2011, 2, 3, 10, 15, 0, 0, DateTimeZone.forID("America/Los_Angeles"));
Duration duration = new Interval(ny, la).toDuration();
Run Code Online (Sandbox Code Playgroud)