【问题标题】:GWT Date equivalent to java.util.CalendarGWT 日期等价于 java.util.Calendar
【发布时间】:2016-11-07 03:56:12
【问题描述】:

我想获取一周中特定日期的日期,例如星期三。即如果今天的日期是 27th Friday, Wednessday 实际上就是 25th 。

我可以做到这一点

Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);
String thisWed = String.format("%tF%n", calendar)

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

谢谢

【问题讨论】:

标签: java gwt calendar


【解决方案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

    【讨论】:

    • 嗨 thomas,乍一看你的逻辑,它看起来不错,但是当我运行它时,我得到了 Fri Apr 27 18:25:48 CAT 2012 。使用上面的代码,我会得到Last Wednessday: 2012-04-25。我希望得到 new Date() 那一周的最后一个星期三。
    【解决方案3】:

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

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

    【讨论】:

    • 谢谢,但没有回答我的问题。
    【解决方案4】:

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

    基于ftr-gwt-library项目的仿真和实用类(https://code.google.com/p/ftr-gwt-library/)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多