0

我使用日期类来获取当前小时的功能

Date date = new Date();
int t=date.getHours();

并且 eclipse 一直在抱怨代码被弃用。一切正常,但它一直在警告我,我有理由改变它吗?有没有获得当前时间的替代方法?

4

7 回答 7

1

如果您查看java.util.Date API

getHours()是一个不推荐使用的方法

已弃用。从 JDK 1.1 版开始,由 Calendar.get(Calendar.HOUR_OF_DAY) 取代。

于 2013-01-16T11:30:13.233 回答
1

当发现库的某些部分存在问题时,它们会被标记为已弃用,但设计人员认为对现有部分的改进可能会破坏许多已经依赖于旧行为的现有程序。

因此,他们保留现有部分,至少一段时间(以保持现有源的编译能力,直到它们被更新),同时通常提供替代方案。

现在,关于 Java 中的时间,大多数人推荐Joda time

于 2013-01-16T11:32:14.273 回答
1

你应该改变它的原因是它java.util.Date在许多微妙的方面被打破了。您的代码可能在某些情况下工作而在其他情况下失败(例如,当您在具有不同时区的计算机上运行它时,当黑客攻击您的应用程序时,当有人弄乱序列化Date对象时,......)

2013年,你不应该再使用java.util.Date了。如果必须,请使用Calendar,或者更好的joda-time library

于 2013-01-16T11:33:22.603 回答
0

Date#getHours已弃用:

从 JDK 1.1 版开始,由 Calendar.get(Calendar.HOUR_OF_DAY) 取代。

于 2013-01-16T11:29:41.407 回答
0

更改的原因是已弃用的代码被“标记”为在将来的版本中删除,因此如果您打算随着时间的推移对其进行维护,则不应在代码中使用弃用的方法。
至于如何获取时间,来自 Date Javadoc:

As of JDK version 1.1, replaced by Calendar.get(Calendar.HOUR_OF_DAY).
于 2013-01-16T11:31:14.527 回答
0

Date.getHours自 JDK 1.1 版起已弃用。您应该java.util.Calendar.get(Calendar.HOUR_OF_DAY)改用:

Calendar c = Calendar.getInstance();
int t = c.get(Calendar.HOUR_OF_DAY);
于 2013-01-16T11:31:23.433 回答
0

http://uk.answers.yahoo.com/question/index?qid=20081123050802AAL0gAm

基本上,您仍然可以使用该方法。但是接下来的几个 java 版本可能不支持它。

顺便说一句,您可以通过使用 Calendar 类来解决这个问题。

于 2013-01-16T11:32:17.770 回答