Javascript 在后端接收ZoneDateTime对象时出现问题
我面临着从前端接收数据的问题。 我以Javascript 在后端接收ZoneDateTime对象时出现问题,javascript,java,spring,timezone-offset,zoneddatetime,Javascript,Java,Spring,Timezone Offset,Zoneddatetime,我面临着从前端接收数据的问题。 我以“2020-01-03T00:00:00+02:00”格式从前端将日期发送到后端的ZoneDateTime对象。但是,我收到的不是2020-01-03T00:00Z[UTC],而是2020-01-02T22:00Z[UTC](实际减去2小时) 问题: 有没有办法使ZonedDateTime库不转换为UTC或不转换为负时区? 也许有注释 控制器和对象简单代码示例 来自前端的对象: @DIfferentsLombokAnnotations public class
“2020-01-03T00:00:00+02:00”
格式从前端将日期发送到后端的ZoneDateTime
对象。但是,我收到的不是2020-01-03T00:00Z[UTC]
,而是2020-01-02T22:00Z[UTC]
(实际减去2小时)
问题:
有没有办法使ZonedDateTime库不转换为UTC或不转换为负时区?
也许有注释
控制器和对象简单代码示例
来自前端的对象:
@DIfferentsLombokAnnotations
public class Filters {
private ZonedDateTime startDate;
//Other fields
}
控制器:
@PostMapping("/ggg")
public List<ResponceObject> method(@RequestBody Filters filters) {
//any code
}
@PostMapping(“/ggg”)
公共列表方法(@RequestBody过滤器){
//任何代码
}
ZonedDateTime仅支持UTC或UTC+2,这将解释为什么您会得到结果。一个选项是不发送ZonedDateTime,而是发送LocalDate、LocalTime、ZoneId和ZoneOffset,然后在后端解析为ZonedDateTime。一天结束时,ZonedDateTime已经由这些组件组成。您必须在ISO中设置日期格式。在这里看一看:谢谢,但实际上后端有问题您得到了正确的时间点(只是表达方式不同,转换为UTC)。没有减去两个小时。也许您想传递一个LocalDate
。它是一个没有时区或偏移的日期,也没有一天中的时间,例如2020-01-03
,因此时间不可能是错误的。有没有办法使用矩.js lib传递LocalDate?我如何将其转换为ZDT到该值:2020-01-03T00:00Z[UTC]?主要的问题是,我只需要zdtobjecctunderstand,但不幸的是,由于特定的体系结构,我无法更改前端请求。但是谢谢你的回答。该死,好吧,如果你总是确定偏移量,你可以用一些偏移量来抵消ZoneDateTime。这可能是一个有效的解决方案(某种程度上)。当然,我已经以这种方式意识到了这一点。。。我把时区转换成秒,然后用秒加秒的方法来补偿损失的小时数。我只是觉得有更好的方法可以做到这一点,使用弹簧或其他配件