我用的是弹力靴和角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。
这意味着从前端到后端的日期减少了3个小时,而其他的时间则减少了3个小时才能保存在数据库中。
数据库中的列类型是:没有时区的startdate_jc时间戳,
在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)科威特,利雅得。
我想在数据库中保存这个日期2021-08-5 00: 00:00:00
因此,从前端和后端解除时区的影响。
发布于 2021-05-29 15:40:34
一种方法是将其存储为(只是一个数字)。然后,您可以轻松地将其转换为任何与时区相关的日期格式。我建议采用这种办法,因为它是最灵活的办法。
总是尽量保持简单。而跨过3 TimeZones,用代码解决这个问题,仅仅为了保持时间戳的可读性,就太容易出错,而且耗时。
另一种方法是将其存储为字符串,但请不要这样做。
https://stackoverflow.com/questions/67752785
复制相似问题