我试图使用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);

现在,我想知道这是否考虑了日光节约和leap年...
另外,使用“Period”是否是实现此目标的正确方法?
谢谢 ;)

最佳答案

您提供的代码可以使用并考虑了时区,但是您无需转换为UTC。此代码更简单,并且执行相同的操作(使用Duration而不是Period):

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();

10-04 11:38
查看更多