为什么不抛弃java.util.Date的setTime()方法?

时间:2009-10-12 21:36:46

标签: java date time calendar deprecated

所有其他的mutator都在JDK 1.1中被弃用了,那么为什么setTime()被保留了呢?当然java.util.Calendar - 操作日期的正确方法 - 可以根据需要使用java.util.Date构造函数创建java.util.Date(long)的新实例吗?

3 个答案:

答案 0 :(得分:6)

不推荐使用的Date位是那些与日历相关的位(即日,月,年等)。您会注意到日历字段的访问器方法也已弃用,而不仅仅是mutators。

然而,作为毫秒值的表示仍然是Date的工作方式,并且与日历表示无关,因此它保持未初级化。

答案 1 :(得分:4)

其他的变异者试图使用java.util.Date作为日历,而不是作为一个瞬间,从1970年1月1日上午12点UTC开始,包裹了几毫秒。因此,不推荐使用一个mutator是有道理的。

Date / Calendar API当然仍然很糟糕,你应该尽可能使用Joda Time - 但我可以看到为什么这个调用没有被弃用。事实之后,你不能使一个类型成为不可变的,这不是弃用的重点 - 重点是试图阻止人们将它用作“1976年6月19日”等的存储。

答案 2 :(得分:2)

因为setTime方法至少在逻辑上是正确的:使用等的setX方法毫无意义:java Date 即时,因此小时等仅与查看特定Date中的TimeZone