2012-12-15 72 views
2

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

  1. 如何确保在第二个日期选取器挑选的日期至少应相同或晚于一个在第一个挑?

  2. 我想在两个日期选择器中设置相同的日期并检查我的当前日期。我试图通过将我的第二个日期的时间设置为11:59:59 PM,但它说Date.setHours和setMinutes方法被取消。

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

p.s.请不要告诉我使用日历或任何其他日期功能。我的约束是我需要使用java.util.Date。

+0

那么,无论你使用这个弃用的方法,或者你使用日历,或者你使用其他日期时间库,如乔达时间。 –

+1

@Jakub GWT中没有日历或Joda。 –

+0

是否尝试过Calendar.set(Calendar.HOUR_OF_DAY,int小时)而不是date.sethours –

回答

4

比较日期,即可使用

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

请注意,你不能直接比较日期 - Java允许,但在JavaScript中也有问题。

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

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

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

6

尽管您的IDE有什么要说的,但使用旧的java.util.Date方法并不是那么糟糕。在常规Java代码中,是的,请使用Calendar类,但出于历史原因,请考虑不要使用这些“已弃用”方法。

曾几何时,Java是最酷的孩子 - 很奇怪,对吧?网络浏览器没有这样的语言,有人说:“嘿,让他们给我一种脚本语言,但把它叫做什么,我不知道,很酷!”因此,我们给了JavaScript - 更多的是一种类似于Lisp的语言,但不用介意。

一些API是借来的,比如Date对象。然后,Java决定它可以处理的日期和时间以及时区更好,不赞成这些功能,如setHours,并转移到我们今天所知和所爱的Calendar,JodaTime等明亮(令人困惑)的未来。

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

因此,在GWT中,用Java编写你喜欢的地方,但要记住你是在一个Web浏览器中 - 底层语言恰好具有使用这些不推荐使用的方法的本地功能 - 而且它们不会去任何地方。同样,尽管Object.wait()notify()是合法的,但不能使用它们,也不会调用finalize()--这些只是使用Java组织和维护库或应用程序时需要记住的事情,并且编译为使用JavaScript在网页浏览器中运行。

相关问题