任何人都可以想到XMLGregorianCalendar.getEon()的实际用途吗?

时间:2011-06-17 12:20:46

标签: java gregorian-calendar

前一段时间我遇到了XMLGregorianCalendar课程,我对GregorianCalendar看起来轻量级的方式印象深刻。 ;)

最近,我注意到一种令我困惑的方法BitInteger getEon()

来自Javadoc for XMLGregorianCalendar

  

getYear()是介于 - (10 ^ 9-1)到(10 ^ 9)-1或DatatypeConstants.FIELD_UNDEFINED之间的值。   getEon()是十亿年的高阶年值。

在我看来,随着地球上一天的长度在数百万年中发生显着变化,一年中的天数发生了变化。格列高利历在十亿年前或十亿年后都没有意义。因此,getEon()只能合理地设置为0或保留undefined,其结果大致相同。

我的问题:我错过了什么吗? getEon()方法是否合理使用?

1 个答案:

答案 0 :(得分:4)

好吧,根据http://www.merlyn.demon.co.uk/critdate.htm,使用64位整数的unix时间将在3E11左右结束。鉴于Java使用毫秒而不是秒,Java时间(64位)将以3E8结束。因此,这提供了一些超出JVM限制的扩展。

在更实际的说明中,当你使用这个时间尺度时,你正在谈论地质,进化或宇宙事件,所以日期(年,月,日......)中的其余数据是没有意义的。如果你使用年份长(或者甚至是eon的int)会更好,而忘记其余部分。

看起来有人真的非常无聊(而且很无聊)。


编辑:当然,总有一些疯狂的问题可以使用它,但不是现实世界的问题(如:“如果我们有一个带有64张光盘的河内塔并且移动光盘一秒钟,我们什么时候才能完成交换塔“)。