有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

Spring boot应用程序我设置了全局时区UTC。因此,客户端(角度)根据正确工作的用户时区显示。但问题是我们正在根据更改的日期搜索记录。如何解决这个问题

例如:

  1. 创建一条数据库记录(提交日期),即UTC假设2018年10月30日7:30:45
  2. 现在,我将回复返回给客户,日期为(提交)2018年10月30日,然后在安圭尔。他们根据用户时区转换的js应用程序仅假设在美国时区显示(提交日期)2018年10月29日
  3. 那么,当用户根据提交日期(2018年10月29日)搜索记录时,我如何解决这个问题
  4. DB中的实际日期为2018年10月30日,但在客户端应用程序中,他们根据客户端日期2018年10月29日进行搜索

共 (3) 个答案

  1. # 1 楼答案

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

  2. # 2 楼答案

    @Jack... try this it will solve

    spring.datasource.url=jdbc:mysql://localhost:3306/veta?useSSL=false&useLegacyDatetimeCode=false&serverTimezone=UTC
    
  3. # 3 楼答案

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

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

    请angular developer将日期转换为UTC并发送到服务器