GWT Date等同于java.util.Calendar

时间:2012-04-27 13:50:34

标签: java gwt calendar

我希望得到一周中特定日期的日期,例如Wednessday。即如果今天的日期是星期五27日,那么Wednessday将会是25日。

我可以通过

实现这一目标
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);
String thisWed = String.format("%tF%n", calendar)

这里的挑战是GWT客户端不支持java.util.Calendar,是否有可能的解决方案而不必将此代码移动到服务器端?

由于

4 个答案:

答案 0 :(得分:16)

答案 1 :(得分:2)

最简单的可能是使用Joda-time或类似的,但JodaTime的所有GWT端口都被放弃了:Date time library for gwt

性能最高(没有第三方依赖)是自己进行计算:

Date d = new Date();
int dow = d.getDay();
int wed_delta = 3 - dow;
wed = new Date(d.getTime() + (86400 * wed_delta));

(最后一行可以替换为CalendarUtil.addDaysToDate(d, wed_delta),就地修改d

答案 2 :(得分:1)

使用DateTimeFormat,它允许将java.util.Date格式化为字符串或将字符串格式化为Date。

Date date = new Date();
DateTimeFormat format = DateTimeFormat.getFormat("EEEE");
String day = format.parse(date);

答案 3 :(得分:0)

您可以在bitbucket(https://bitbucket.org/JRS/open-gwt)上的open / gwt项目中使用Calendar emulation和org.jresearch.commons.gwt.shared.tools.Dates实用程序类

基于ftr-gwt-library项目的模拟和实用程序类(https://code.google.com/p/ftr-gwt-library/