我正在使用2个GWT日期选择器和一个JAVA日期对象。我想检查当前日期(来自now()函数)是否在datepickers中选择的日期之间。 我有两个问题:
如何确保在第二个日期选择器中选择的日期与第一个日期选择器中选择的日期相同或晚于?
我想在两个日期选择器中设置相同的日期,并检查我当前的日期。我尝试通过将第二个日期的时间设置为晚上11:59:59来实现此目的,但它表示Date.setHours和setMinutes方法已被删除。
有什么想法吗?感谢任何帮助。
P.S。请不要告诉我使用日历或任何其他日期功能。我的约束是我需要使用java.util.Date。
答案 0 :(得分:6)
尽管你的IDE有什么说法,但使用旧的java.util.Date
方法并不是那么糟糕。在常规Java代码中,是的,请改用Calendar
类,但出于历史原因,请三思而后行,不要使用那些“弃用”方法。
曾几何时,Java是最酷的孩子 - 很奇怪,对吧?网络浏览器没有这样的语言,有人说“嘿,让我们给他们一个脚本语言,但称之为东西,我不知道,很酷!”因此,我们获得了JavaScript - 更像是一种类似于Lisp的语言而不是Java,但不用担心。
借用了一些API,例如Date对象。然后,Java决定它可以更好地处理日期,时间和时区,弃用setHours
之类的函数,并转移到我们所知道的Calendar,JodaTime等的明亮(并且令人困惑)的未来。爱今天。
浏览器虽然有JavaScript,但他们正在找到自己的方式,并继续使用这些方法。有一些JavaScript库可以帮助处理日期,但在浏览器运行时,Date对象仍然看起来像旧的java.util.Date
。
因此,在GWT中,在您喜欢的地方写Java,但始终记住您在Web浏览器中 - 基础语言恰好具有使用这些弃用方法的本机功能 - 而且它们不会在任何地方。同样,即使Object.wait()
和notify()
合法,也不能使用它们,也不会调用finalize()
- 这些只是在使用Java时需要记住的事项组织和维护您的库或应用程序,并编译以使用JavaScript在Web浏览器中运行。
答案 1 :(得分:4)
比较日期只需使用
date2.getTime() >= date1.getTime();
请注意,您无法直接比较日期 - Java允许它,但JavaScript中存在问题。
要设置相同的日期,请从一个日期选择器中获取日期,然后将其设置为另一个日期选择器。
另请注意,GWT中有一个CalendarUtil类(com.google.gwt.user.datepicker.client.CalendarUtil),它具有有限的功能,但在许多情况下它仍然非常有用。
您可以将弃用的方法与Date对象一起使用 - 没有人计划在不久的将来删除它们。我尝试在可能的情况下使用毫秒来避免它们,但是例如,使用不推荐的方法检查一周中的某一天会更容易。