Joda Interval失去了时区信息

jgm*_*jgm 3 java jodatime

我正在定义一个Joda间隔如下:

final DateTimeZone fromDtz = DateTimeZone.forID("Europe/Paris");
final DateTime fromDt = DateTime.parse("2013-08-08T01:02:03+0200").withZone(fromDtz);
final DateTimeZone toDtz = DateTimeZone.forID("Europe/London");
final DateTime toDt = DateTime.parse("2013-08-08T01:02:05+0100").withZone(toDtz);
final Interval interval = new Interval(fromDt, toDt);
Run Code Online (Sandbox Code Playgroud)

但是,我似乎在时间间隔结束时丢失了时区信息.如果我toString()在收到的间隔内做一个简单的事情:

2013-08-08T01:02:03.000+02:00/2013-08-08T02:02:05.000+02:00
Run Code Online (Sandbox Code Playgroud)

这是我想要保留的一些信息(在时间间隔结束时日期时间的具体时区).

我浏览了文档和源代码,看起来Interval只包含一个单一的年表.有没有办法告诉Joda保留两个时区而不用手动围绕两个单独的DateTimes?

Jon*_*eet 5

从根本上说,间隔是两个时刻之间的时间 - 而时刻不具有年表,时区等.它们只是通用时间线上的点 - 自纪元以来的毫秒数.ReadableInterval暴露的事实getChronology是一个设计缺陷,IMO - 但实际上只有一个这样的年表.如果您试图保留更多信息,我相信您需要使用自己的类型.

toInterval()对于你真正想要使用Joda Time Interval方法的地方,它可能就像一个开始/结束对和一个方法一样简单,但我认为Joda Time没有内置任何你想要的东西.