我正在使用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
所以它给了我一个奇怪的TimeZone。我认为时区的增量为100 ...即-0800,-0500等
这里发生了什么?
答案 0 :(得分:1)
问题来自你正在使用的中世纪日期。
默认情况下,Joda-Time使用ISO年表,这对1583年之前的历史日期不准确。如果您不需要使用历史日期,则默认的ISO年表应该没问题。
如果您确实希望使用历史日期,您可以查看Julian年表,或者更好的是Gregorian-Julian年表。
此外,在时区之间不一定有1小时的增量。 there出现了30分钟和45分钟的差异时区。