0

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

4

1 回答 1

0

我想知道,spring mvc 表单提交是如何获得 EST 而我的应用程序是 EDT

您正在使用America/New_York时区,当夏令时发生更改时,该时区在 EST 和 EDT 之间交替。

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

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

于 2013-08-26T14:39:08.910 回答