我希望得到一周中特定日期的日期,例如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
,是否有可能的解决方案而不必将此代码移动到服务器端?
由于
答案 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/)