Lors de l'utilisation de JPA, la nouvelle heure Date () est insérée dans la base de données et le décalage horaire est de 8 heures. Solution

Lors de l'utilisation de JPA, la nouvelle heure Date () est insérée dans la base de données et le décalage horaire est de 8 heures. Solution

1. Environnement de déploiement Docker

Vérifiez respectivement le fuseau horaire du miroir interne du docker. Si le fuseau horaire est incorrect, il est recommandé de lier le fuseau horaire du miroir Docker au fuseau horaire du système.

version: "3"
services:
  deploy:
    build: doc
    container_name: doc_server
    network_mode: "host"
    ports:
      - 8080:8080
    volumes:
      - ./log:/log
      # 时区绑定到系统时间 
      - /etc/timezone:/etc/timezone
      - /etc/localtime:/etc/localtime

2. Lorsque JPA ajoute des données

CreateTime adopte la nouvelle méthode Date () et le décalage horaire peut se produire. La solution est la suivante:

a. Modifiez serverTimezone = GMT% 2b8 des paramètres JDBC

     datasource:
        type: com.zaxxer.hikari.HikariDataSource
        url: jdbc:mysql://17.17.27.21:3306/dbname?useUnicode=true&characterEncoding=utf8&useSSL=false&useLegacyDatetimeCode=false&serverTimezone=GMT%2b8
        username: root
        password: root

b. Modifiez pour ajouter un commentaire sur la classe d'entité de temps: @JsonFormat (timezone = "GMT + 8", pattern = "aaaa-MM-jj HH: mm: ss")

    // 创建时间
    @Basic
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Column(name = "create_time", columnDefinition = "datetime COMMENT '创建时间'")
    private Date createTime;

    // 更新时间
    @Basic
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @Column(name = "update_time", columnDefinition = "datetime COMMENT '更新时间'")
    private Date updateTime = new Date();

Après l'ajout, redéployez le service et ajoutez une nouvelle donnée pour vérifier si c'est normal. Bonne chance!

Je suppose que tu aimes

Origine blog.csdn.net/doinbb/article/details/105141155
conseillé
Classement