首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >禁用时区的影响以保存LocalDateTime

禁用时区的影响以保存LocalDateTime
EN

Stack Overflow用户
提问于 2021-05-29 14:57:15
回答 1查看 239关注 0票数 1

我用的是弹力靴和角7。

我有一个问题,要发送即时日期从前端到后端。

我有一个例子:

代码语言:javascript
复制
 var dateObj = '2021-08-5';
    var momentObj = moment(dateObj);
    var momentString = momentObj.format('YYYY-MM-DD');
    this.student.startdateJc= moment(momentString);

日期是以这种格式发送的:

在后端,我有以下代码:

代码语言:javascript
复制
 student.setStartdateJc(studentDTO.getStartdateJc());

我发现在java代码(studentDTO.getStartdateJc())中保存数据库之前的日期是2021-08-4T21:00

在数据库中保存后,列中的日期为2021-08-4 18:00

这意味着从前端到后端的日期减少了3个小时,而其他的时间则减少了3个小时才能保存在数据库中。

数据库中的列类型是:没有时区的startdate_jc时间戳,

在java代码中: Student.java

代码语言:javascript
复制
 @Column(name = "startdate_jc")
    private LocalDateTime startdateJc;

StudentDTO.java

代码语言:javascript
复制
private LocalDateTime startdateJc;

我在application.yml中有这个配置

代码语言:javascript
复制
 jpa:
        open-in-view: false
        properties:
            hibernate.jdbc.time_zone: UTC

我的服务器和客户端的时区是(UTC+03:00)科威特,利雅得

我想在数据库中保存这个日期2021-08-5 00: 00:00:00

因此,从前端和后端解除时区的影响。

EN

回答 1

Stack Overflow用户

发布于 2021-05-29 15:40:34

一种方法是将其存储为(只是一个数字)。然后,您可以轻松地将其转换为任何与时区相关的日期格式。我建议采用这种办法,因为它是最灵活的办法。

总是尽量保持简单。而跨过3 TimeZones,用代码解决这个问题,仅仅为了保持时间戳的可读性,就太容易出错,而且耗时。

另一种方法是将其存储为字符串,但请不要这样做。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67752785

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档