Spring MVC夏令时问题

时间:2013-08-26 10:42:40

标签: java spring timezone dst

我已经在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

我想知道,为什么春季mvc表单提交获得EST,而我的应用程序是EDT

1 个答案:

答案 0 :(得分:0)

  

我想知道,为什么春季mvc表单提交获得EST,而我的应用程序是EDT

您正在使用America/New_York时区,该时区会在EST和EDT之间切换,因为夏令时会发生变化。

当您使用没有约会的时间时,您暗示1/1/1970的日期 - 当时America/New_York在EST中的日期。

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