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 并将其发送到服务器。
慕尼黑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.
catspeake
TA贡献1111条经验 获得超0个赞
@Jack...试试这个它会解决
spring.datasource.url=jdbc:mysql://localhost:3306/veta?useSSL=false&useLegacyDatetimeCode=false&serverTimezone=UTC
添加回答
举报
0/150
提交
取消