gwt替代已弃用的java日期。设定时间
我正在使用2个GWT日期选择器和一个JAVA日期对象。我想检查当前日期(来自now()函数)是否在日期选择器中选择的日期之间。 我有两个问题:
如何确保在第二个日期选取器中选取的日期至少与在第一个日期选取器中选取的日期相同或更晚
我想在两个日期选择器中设置相同的日期,并对照它检查我的当前日期。我试着把我第二次约会的时间定在晚上11:59:59,但上面说是这个日期。设置小时数和设置分钟数的方法是去润滑的
有什么想法吗?谢谢你的帮助
另外,请不要告诉我使用日历或任何其他日期功能。我的限制是我需要使用java。util。日期
# 1 楼答案
不管你的IDE怎么说,使用旧的
java.util.Date
方法并不是那么糟糕。在常规Java代码中,可以使用Calendar
类,但出于历史原因,请仔细考虑不要使用那些“不推荐的”方法曾几何时,爪哇是世界上最酷的孩子——奇怪吧?网络浏览器没有这样一种语言,有人说:“嘿,让我们给他们一种脚本语言吧,不过我不知道,这很酷!”因此,我们得到了JavaScript——更像是一种类似Lisp的语言,而不是Java,但没关系
借用了一些API,比如Date对象。然后,Java决定它可以更好地处理日期、时间和时区,不赞成使用诸如
setHours
之类的函数,并转向了日历、JodaTime等我们今天所知道和喜爱的光明(且令人困惑)的未来尽管浏览器有JavaScript,但它们正在寻找自己的方式,并继续使用这些方法。有一些JavaScript库可以帮助处理日期,但在浏览器运行时中,日期对象看起来仍然像旧的
java.util.Date
因此,在使用GWT时,可以随心所欲地使用Java编写代码,但要始终记住,您使用的是web浏览器——底层语言恰好具有使用这些不推荐的方法的本机功能——而且它们哪儿也去不了。同样地,即使
Object.wait()
和notify()
是合法的,你也不能使用它们,你的finalize()
也永远不会被调用——当你使用Java来组织和维护你的库或应用程序,并使用JavaScript编译以在web浏览器中运行时,这些正是你需要记住的事情# 2 楼答案
要比较日期,只需使用
请注意,您不能直接比较日期——Java允许这样做,但JavaScript中存在一些问题
要设置相同的日期,请从一个日期选择器获取日期,然后将其设置为另一个日期选择器
还要注意的是,GWT中有一个CalendarUtil类(com.google.GWT.user.datepicker.client.CalendarUtil),它的功能有限,但在许多情况下仍然非常有用
你可以对日期对象使用不推荐的方法——没人打算在短期内删除它们。如果可能的话,我会尽量使用毫秒来避免它们,但是使用不推荐的方法检查一周中的某一天要容易得多