2

我正在使用 2 个 GWT 日期选择器和一个 JAVA 日期对象。我想检查当前日期(来自 now() 函数)是否在日期选择器中选择的日期之间。我有两个问题:

  1. 如何确保在第二个日期选择器中选择的日期至少与在第一个日期选择器中选择的日期相同或更晚?

  2. 我想在两个日期选择器中设置相同的日期并对照它检查我的当前日期。我试图通过将第二个日期的时间设置为晚上 11:59:59 来做到这一点,但它说 Date.setHours 和 setMinutes 方法已被弃用。

有任何想法吗?感谢任何帮助。

ps 请不要告诉我使用日历或任何其他日期功能。我的限制是我需要使用 java.util.Date。

4

2 回答 2

6

尽管您的 IDE 对此有什么看法,但使用旧java.util.Date方法并没有那么糟糕。在常规的 Java 代码中,是的,请改用Calendar类,但由于历史原因,请三思而后行,不要使用那些“已弃用”的方法。

曾几何时,Java 是最酷的孩子——很奇怪,对吧?Web 浏览器没有这样的语言,有人说:“嘿,让我们给他们一种脚本语言,但是叫它什么,我不知道,很酷!” 因此,我们得到了 JavaScript——比 Java 更像是一种类似 Lisp 的语言,但没关系。

借用了一些 API,例如 Date 对象。然后,Java 决定它可以更好地处理日期和时间以及时区,弃用了setHours诸如

浏览器虽然有 JavaScript,但正在寻找自己的方式,并继续使用这些方法。有一些 JavaScript 库可以帮助处理日期,但在浏览器运行时中,Date 对象仍然看起来像旧的java.util.Date.

So when in GWT, write in Java where you like, but always remember that you are in a web browser - the underlying language just so happens to have native functionality that uses those deprecated methods - and they aren't going anywhere. Likewise, even though Object.wait() and notify() are legal, you can't use them, nor will your finalize() ever be invoked - these are just things you need to keep in mind when using Java to organize and maintain your library or application, and compiling to run in web browsers using JavaScript.

于 2012-12-15T22:09:51.123 回答
4

要比较日期,只需使用

date2.getTime() >= date1.getTime();

请注意,您不能直接比较日期 - Java 允许这样做,但 JavaScript 存在问题。

要设置相同的日期,请从一个日期选择器中获取日期,然后将其设置为另一个。

另请注意,GWT (com.google.gwt.user.datepicker.client.CalendarUtil) 中有一个 CalendarUtil 类,它的功能有限,但在许多情况下它仍然非常有用。

您可以将不推荐使用的方法与 Date 对象一起使用 - 没有人计划很快将它们删除。我尽量使用毫秒来避免它们,但它更容易,例如,使用不推荐的方法检查一周中的某一天。

于 2012-12-15T02:18:51.847 回答