为了账号安全,请及时绑定邮箱和手机立即绑定

不同区域的日期/时间问题

不同区域的日期/时间问题

偶然的你 2021-12-30 17:09:23
Spring Boot 应用程序我设置了全球时区 UTC。以便客户端(Angular)根据正确工作的用户时区显示它们。但问题是我们正在根据更改的日期搜索记录。如何解决这个问题?例子:在数据库中创建一个记录(提交日期),即 UTC 假设 30/10/2018 : 7:30:45现在我将响应返回给客户,日期是(提交)30/10/2018 然后在 anguar.js 应用程序之后,他们根据用户时区进行转换,只是假设在美国时区它将显示(提交日期)29/10/ 2018年,那么当用户根据提交日期搜索记录时,我该如何解决这个问题 (29/10/2018)在 DB 中的实际日期是 30/10/2018 但在客户端应用程序中,他们根据客户端日期 29/10/2018 进行搜索
查看完整描述

3 回答

?
萧十郎

TA贡献1815条经验 获得超13个赞

将 UTC 日期发送到服务器是他们(前端开发人员)的责任,服务器将仅根据 UTC 返回结果,然后他们可以在用户的时区中转换日期。

所以结论是服务器将只处理一个时区,即 UTC。

要求 angular 开发人员将日期转换为 UTC 并将其发送到服务器。


查看完整回答
反对 回复 2021-12-30
?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

我使用 mysql 查询解决了上述问题


在 MySQL 中,CONVERT_TZ() 在将日期时间值从指定为第二个参数的时区转换为指定为第三个参数的时区后返回结果值。当参数无效时,此函数返回 NULL。


CONVERT_TZ (dt, from_tz,to_tz)


Name        Description

dt          A datetime.

from_tz     A time zone which will be converted to to_tz.

to_tz      A time zone in which the from_tz will convert.

//img1.sycdn.imooc.com//61cd77770001cd3906540432.jpg

查看完整回答
反对 回复 2021-12-30
?
catspeake

TA贡献1111条经验 获得超0个赞

@Jack...试试这个它会解决

spring.datasource.url=jdbc:mysql://localhost:3306/veta?useSSL=false&useLegacyDatetimeCode=false&serverTimezone=UTC


查看完整回答
反对 回复 2021-12-30
  • 3 回答
  • 0 关注
  • 150 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信