【问题标题】:Date is displaying as one day before to the front end from the database日期从数据库显示为前一天到前端
【发布时间】:2020-04-27 22:46:59
【问题描述】:

我正在使用 mysql 数据库,如果我给今天的日期提供任何输入,它将作为当前日期(10-01-2019)。但问题是它在前端显示为前一天(09-01-2019)。我没有使用任何流。日期数据类型已尝试为 Instant、LocalDate。

如何解决这个问题?

【问题讨论】:

  • 这适用于所有日期吗?您是否排除了客户端、服务器和记录日期之间的时区不匹配?
  • 数据类型设置为数据库中的日期
  • 根据MySQL documentationDATE数据类型映射到java类java.sql.Datejava.sql.Date 实例的字符串表示并不总是真正反映实际值。也许我的[现在古老的]文章会有所帮助:What's your time zone?
  • 也许minimal reproducible example 适合这里?

标签: java mysql spring-boot date mysql-workbench


【解决方案1】:
  • 检查数据库时区:

    SELECT DBTIMEZONE FROM DUAL;

    SELECT @@global.time_zone, @@session.time_zone;

  • 检查您的本地电脑时区。

如果它们不同:

SET time_zone='00:00';

【讨论】:

    【解决方案2】:

    您需要以 YYYY-MM-DD 格式存储日期。 这就是为什么您会看到不同的日期

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-10
      • 2021-03-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多