Java 春季MVC夏令时问题
我在SpringMVC上工作了很长时间,遇到了这个问题 我使用以下代码将应用程序时区设置为纽约:Java 春季MVC夏令时问题,java,spring,timezone,dst,Java,Spring,Timezone,Dst,我在SpringMVC上工作了很长时间,遇到了这个问题 我使用以下代码将应用程序时区设置为纽约: public class ApplicationListenerBean implements ApplicationListener { @Override public void onApplicationEvent(ApplicationEvent event) { if (event instanceof ContextRefreshedEvent) {
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
我想知道,为什么我的申请是EDT,而SpringMVC表单提交却得到了EST
我想知道,为什么我的申请是EDT,而SpringMVC表单提交却得到了EST
您使用的是美国/纽约
时区,当夏令时发生变化时,该时区在美国东部时间和美国东部时间之间交替
当你使用一个没有日期的时间时,你意味着日期是1/1/1970
——对于America/New_York
,这是当时的EST
相反,您应该将时间应用于特定日期,以便它使用该时间的正确偏移量