如何在SmartGwt中添加日期到日期。我找到this question并发现我可以使用CalendarUtil.addDaysToDate(dateToAddTo, daysToAddToDateAsInteger));
,但addDaysToDate()
是静态无效的。如果方法没有返回任何内容,那么可以“添加日期”的方法有什么意义呢?
我如何使用此方法?我想做这样的事情。
Date newDate = dateToAddTo + daysToAddToDate;
以下是我的代码的简化版本。
if (listGridRecord.getAttribute("expirationDays") != null) {
CalendarUtil.addDaysToDate((Date) endDate.getValue(), Integer.parseInt(listGridRecord.getAttribute("expirationDays")));
listGridRecord.setAttribute("expirationDate", (Date) endDate.getValue());
} else {
listGridRecord.setAttributeAsJavaObject("expirationDate", null);
}
以下是javadocs
的链接答案 0 :(得分:1)
此方法更改作为参数传递的对象。
Date date = new Date();
long checkBeforeChange = date.getTime();
CalendarUtil.addDaysToDate(date, 1);
long checkAfterChange = date.getTime();
if(checkBeforeChange != checkAfterChange)
Window.alert("It works ;)");
您的代码应该是这样的:
if (listGridRecord.getAttribute("expirationDays") != null) {
Date tmpDate = endDate.getValue();
CalendarUtil.addDaysToDate(tmpDate, Integer.parseInt(listGridRecord.getAttribute("expirationDays")));
listGridRecord.setAttribute("expirationDate", tmpDate);
} else {
listGridRecord.setAttributeAsJavaObject("expirationDate", null);
}
执行(Date) endDate.getValue()
时,您会收到Date
个对象的副本,因此您不会看到任何更改。
答案 1 :(得分:0)
我在@Adam的帮助下弄清楚我做错了什么。我创建了一个名为expireationDate的新Date变量,并将其设置为(Date)endDate.getValue();在此之后我用它来进行计算。
brew doctor
答案 2 :(得分:0)
首先,您可以在自己的实用程序类(私有构造函数)中包含所需的所有实用程序方法,例如, MyDateUtilsClassName.addDays(Date,int)将返回新实例,保留参数未修改。
说到日期操作,在Gwt中你可以使用标准的java.util.Date方法,甚至是那些被弃用的方法,比如setMinutes,setHours等。即使你看到com.google.gwt.user.datepicker.client.CalendarUtil方法,它们在那里使用。
如果它不是服务器端,而是客户端,那么你应该不关心那些方法的@Deprecated。无论如何,Gwt将它们编译为javascript。你应该知道java.util.Calendar。据我记忆,它根本不受支持。