【问题标题】:Spring MVC Daylight saving issueSpring MVC 夏令时问题
【发布时间】:2013-08-28 19:54:29
【问题描述】:

我在 Spring MVC 上工作了一段时间,遇到了这个问题

我使用以下代码将应用程序时区设置为 New_York:

public class ApplicationListenerBean implements ApplicationListener {

    @Override
    public void onApplicationEvent(ApplicationEvent event) {
        if (event instanceof ContextRefreshedEvent) {
            TimeZone.setDefault(TimeZone.getTimeZone("America/New_York"));
            System.out.println("Eastern time zone");
        }
    }
}

接下来,我正在提交一个表单并使用代码阅读它:

@RequestMapping("/saveschedule")
@ResponseBody
public String saveSchedule(
@ModelAttribute CommonSchedule schedule, ModelMap map, HttpServletRequest request) {

    System.out.println(">>>>>>>>>>>>>>>>          " + schedule.getSendingTime());
    System.out.println(new Date());
}

如果我选择时间,15:30:00,我会得到输出 我得到以下输出:

>>>>>>>>>>>>>>>>          Thu Jan 01 05:30:00 EST 1970
Mon Aug 26 06:20:01 EDT 2013

我想知道,spring mvc 表单提交为什么会得到 EST 而我的应用程序是 EDT

【问题讨论】:

    标签: java spring timezone dst


    【解决方案1】:

    我想知道,spring mvc 表单提交为什么会得到 EST 而我的应用程序是 EDT

    您正在使用America/New_York 时区,随着夏令时的变化,该时区​​在 EST 和 EDT 之间交替。

    当您使用没有日期的时间时,您是在暗示 1/1/1970 的日期 - 对于 America/New_York,当时的日期是美国东部标准时间。

    您应该改为将时间应用于特定日期,以便它将使用该时间的正确偏移量。

    【讨论】:

      猜你喜欢
      • 2017-03-14
      • 2013-11-15
      • 2015-06-07
      • 2011-11-20
      • 2011-11-20
      • 2013-02-19
      • 2013-01-30
      • 2010-10-12
      • 2014-08-22
      相关资源
      最近更新 更多