编程语言
首页 > 编程语言> > java-Joda时间间隔丢失时区信息

java-Joda时间间隔丢失时区信息

作者:互联网

我正在定义一个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);

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

2013-08-08T01:02:03.000+02:00/2013-08-08T02:02:05.000+02:00

缺少了我要保留的某些信息(间隔结束时datetime的特定时区).

我在文档和源代码中徘徊,看来Interval仅包含一个年表.有没有一种方法可以告诉Joda保留两个时区,而无需手动传送两个单独的DateTime?

解决方法:

从根本上讲,间隔是两个时刻之间的时间-时刻没有时间顺序,时区等.它们只是通用时间线上的点-自一个纪元以来的毫秒数. IMO完全是ReadableInterval暴露了getChronology的事实,但实际上只有这样一种年表.如果您想保留更多信息,我相信您将需要使用自己的类型.

对于您真正想使用Joda Time Interval方法的地方,它可能像开始/结束对和toInterval()方法一样简单,但是我不认为Joda Time内置了任何功能来执行您想要的操作.

标签:jodatime,java
来源: https://codeday.me/bug/20191030/1968404.html