在Spring Controller中,我得到的日期早于我发送的实际日期

时间:2019-09-25 05:37:22

标签: javascript java angularjs spring datepicker

我正在从日期选择器发送日期,这将是正确的日期,但是当我在控制器中签入日期时,它是在春季启动后端中获取昨天的日期,而在前端中则是Angualr js

我尝试在应用程序属性中设置时区 就像:

  

spring.jackson.time-zone = IST

     

spring.jackson.locale = in_IN

但是没用

日期是== dao:Tue Oct 01 2019 00:00:00 GMT+0530(印度标准时间)和

进入控制者的日期== dao=2019-09-30T18:30:00.000Z

2 个答案:

答案 0 :(得分:0)

JVM将默认时区作为服务器的时区。例如,如果服务器在IST上运行,则JVM将IST时间作为默认时间。 您可以使用此代码并在应用程序启动时在服务器端初始化时区。

@SpringBootApplication
public class Application {
@PostConstruct
public void init(){
// Setting Spring Boot SetTimeZone
TimeZone.setDefault(TimeZone.getTimeZone("IST"));
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}

答案 1 :(得分:0)

与Jackson构造的与TimeZone(java.util.Calendar等)相关联的所有时间对象都使用标准时区(GMT),而不是本地时区(无论如何)。那就是:杰克逊默认使用GMT进行所有处理,除非另有特别说明。 在与来自JSON的数据对象绑定的JSON POJO类数据成员中使用此行。

@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="dd/MM/yyyy", timezone="IST")