点击保存日期有一天休息

时间:2015-06-24 05:25:49

标签: java

他们使用GWT创建了一个包含日期选择器的表单,当用户提交表单时,选择的日期会在一天后返回。例如如果我选择2015年6月21日,它将转移到2015年6月20日。当用户时区与服务器时区不同时,会发生这种情况。当我调试它时,我发现它在将日期转换为日历时返回了一天,因为日期是客户区的日期和日期转换日期转换发生在服务器端,用于将其发送到编组(在向休息服务发送请求之前)用于保存的API。

以下代码用于将日期转换为日历。

    Calendar cal = Calendar.getInstance();
    int offset = date.getTimezoneOffset();
    logger.info("Calendar Instance - " + cal);
    cal.setTime(date);
    logger.info("Calendar Instance after setting date - " + cal);
    cal.set(Calendar.HOUR_OF_DAY, 0);
    cal.set(Calendar.MINUTE, 0);
    cal.set(Calendar.SECOND, 0);
    cal.set(Calendar.MILLISECOND, 0);
    logger.info("Calendar Instance after setting zeros - " + cal);
    return cal;

在上一个日志中,它显示的日期少于实际日期。 如果我删除以下代码,它可以正常工作。

    cal.set(Calendar.HOUR_OF_DAY, 0);
    cal.set(Calendar.MINUTE, 0);
    cal.set(Calendar.SECOND, 0);
    cal.set(Calendar.MILLISECOND, 0);

用于IST和PST,但不用于其他时区。 请帮忙。

0 个答案:

没有答案