我正在使用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分钟的时差。