新的Joda DateTime对象,奇怪的时区(-0752)



我正在使用Joda Time库来打印时间戳,并且在大多数情况下,它正在工作。但是当我创建一个新的DateTime对象时,像这样:

// leftThumbIndex corresponds to a RangeBar position
DateTime startDateTime = new DateTime(1000, 1, 1, leftThumbIndex, 0, 0, 0);
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
Log.e("start", formatter.print(startDateTime));

我打印出结果,这是我得到的:

1000-01-01T23:00:00.000-0752

所以它给了我一个奇怪的时区。我以为时区是以100为单位递增的……-0800, -0500等

这是怎么回事?

问题出在您使用的中世纪日期。

Joda-Time默认使用ISO年表,这对于1583年之前的历史日期是不准确的。如果您不需要使用历史日期,则默认的ISO年表应该可以。

如果你确实想处理历史日期,你可以查看儒略历年表,或者更好的是格里历-儒略历年表。

而且,时区之间不一定有1小时的增量。世界上有30分钟和45分钟的时差。

相关内容

  • 没有找到相关文章

最新更新