Java中的日期操作?

时间:2011-07-26 11:24:51

标签: java date calendar processing

我想获取Date对象的年/月/日值,但docs表示不推荐使用getYear()等方法。它建议使用Calendar代替,但我想知道是否可以使用弃用的方法呢?它只是一个用Processing编写的玩具程序,但我会对几个对象进行相当多的Date操作,因此速度可能是一个问题。

4 个答案:

答案 0 :(得分:3)

在我看来,我建议你看看Yoda Time,这是一个更适合日期/时间任务的库。

http://joda-time.sourceforge.net/

答案 1 :(得分:1)

任何一个都没问题。我会坚持Calendar只是为了与Java版本保持一致。如果只是因为这是一个很好的习惯,应该避免弃用的方法。

如果有可行的选择,我会远离弃用的东西,除非你有充分的理由这样做,比如速度。我怀疑从Date切换到Calendar会导致速度显着下降。您可能希望仅在以下情况下对其进行基准测试。

答案 2 :(得分:1)

如果API被删除,则可能是dangerous or buggy。如果存在建议的替代方案,则应使用它们(并且不要习惯忽略它们)。使用日历并不难获得所需。如果您有特殊的日历操作,可以尝试Charles Goodwin提到的Joda - 但是对于您的用例,似乎没有必要依赖第三方库。

答案 3 :(得分:1)

我不建议使用Date方法。我认为没有任何优势。在DateCalendar上调用该方法对于您作为程序员没有任何影响,是吗?在Date实例上调用它没有任何好处。

正如您所指出的,这些方法已被弃用。这意味着可以随时从API中删除它们,恕不另行通知。实际情况是它只能在JVM升级时发生。如果切换到恰好删除它们的JVM,您的代码将停止工作。

因此,您的代码突然停止工作的风险很小,但不是零。