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