【发布时间】:2021-05-29 14:57:15
【问题描述】:
我使用 jhipster springboot 和 angular 7
我在将时刻日期从前端发送到后端时遇到问题。
我有这个例子:
var dateObj = '2021-08-5';
var momentObj = moment(dateObj);
var momentString = momentObj.format('YYYY-MM-DD');
this.student.startdateJc= moment(momentString);
student.setStartdateJc(studentDTO.getStartdateJc());
我发现在java代码中保存到数据库之前的日期(studentDTO.getStartdateJc()) 是 2021-08-4T21:00
存入数据库后列中的日期为2021-08-4 18:00:00
表示日期从前端到后端减少了 3 小时,其他时间减少了 3 小时以保存在数据库中
数据库中的列类型为:startdate_jc timestamp without time zone,
在java代码中:Student.java
@Column(name = "startdate_jc")
private LocalDateTime startdateJc;
StudentDTO.java
private LocalDateTime startdateJc;
我在 application.yml
中有这个配置 jpa:
open-in-view: false
properties:
hibernate.jdbc.time_zone: UTC
我的服务器和客户端的时区是(UTC+03:00) Kuwait, Riyadh
我想在数据库中保存这个日期 2021-08-5 00:00:00
所以从前端和后端停用时区的影响
【问题讨论】:
-
您的代码很奇怪,为什么在JSON序列化之前将日期作为字符串存储在学生中?你也剥夺了时间。