Spring启动应用程序我设置了全球时区UTC。以便客户端(Angular(基于正确工作的用户时区进行显示。但问题是,我们正在根据更改的日期搜索记录。如何解决这个问题?
示例:
- 在数据库中创建一条记录(提交日期(,即UTC假设2018年10月30日:7:30:45
- 现在我向客户端返回的回复是(提交(2018年10月30日,然后在anguar.js应用程序中,他们根据用户时区进行转换,假设在美国时区,它将显示(提交日期(2018年1月29日
- 那么,当用户根据提交日期(2018年10月29日(搜索记录时,我该如何解决这个问题呢
- 在DB中,实际日期为2018年10月30日,但在客户端应用程序中,他们根据客户端日期2018年10日29日进行搜索
他们(前端开发人员(有责任将UTC日期发送到服务器,服务器将仅根据UTC返回结果,然后他们可以转换用户时区中的日期。
因此得出的结论是,服务器将只处理一个时区,即UTC。
请angular开发人员将日期转换为UTC并发送到服务器。
@Jack。。。试试这个它可以解决
spring.datasource.url=jdbc:mysql://localhost:3306/veta?useSSL=false&useLegacyDatetimeCode=false&serverTimezone=UTC
我使用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.
在此处输入图像描述