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

时间:2018-11-05 05:42:56

标签: java spring spring-boot

Spring Boot应用程序我全局设置了时区UTC。以便他们根据正确的用户时区显示客户端(角度)。但是问题是我们正在根据更改的日期搜索记录。如何解决该问题?

示例:

  1. 在db中创建一个记录(提交日期),该记录是UTC,假设30/10/2018:7:30:45
  2. 现在我将日期为(提交)30/10/2018的响应返回给客户端,然后在anguar.js应用中,他们根据用户时区进行转换后,只需假设它将在美国时区显示(提交日期)29。 / 10/2018,
  3. 所以当用户根据提交日期(29/10/2018)搜索记录时如何解决该问题
  4. 在数据库中的实际日期是2018年10月30日,但是在客户端应用中,它们是根据客户端日期29/10/2018进行搜索

3 个答案:

答案 0 :(得分:2)

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

因此,结论是服务器将仅处理一个时区,即UTC。

请角度开发人员将日期转换为UTC并将其发送到服务器。

答案 1 :(得分:0)

  

@Jack ...试试这个可以解决

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

答案 2 :(得分:0)

我使用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.

enter image description here