在 Thymeleaf + Spring Boot 中检索错误时间

Posted

技术标签:

【中文标题】在 Thymeleaf + Spring Boot 中检索错误时间【英文标题】:Wrong time retrived in Thymeleaf + Spring Boot 【发布时间】:2021-12-25 23:05:20 【问题描述】:

我列出了一个存储在 mysql BBDD 中的表,但我不知道为什么在 Thymeleaf 视图中打印时 DateTime 字段显示为 +1 小时。

这是我检索信息的表的代码:

    <a th:href="@/new">Agreagar Nuevo</a>
        <table border="1">
            <thead style="background-color: #5BA5EA">
                <tr>
                    <th>Nombre</th>
                    <th>Apellidos</th>
                    <th>Tlf.</th>                   
                    <th>Tratamiento</th>
                    <th>Doctor</th>
                    <th>Cita</th>
                    <th>Acción</th>
                </tr>
            </thead>
            <tbody>
                <tr th:each="p:$lista_pacientes">
                    <td th:text="$p.nombre_pac"></td>
                    <td th:text="$p.apellidos_pac"></td>
                    <td th:text="$p.tlf_pac"></td>
                    <td th:text="$p.tratamiento_pac"></td>
                    <td th:text="$p.doctor_pac"></td>
                    <td th:text="$#dates.format(p.cita_pac, 'EEEEE, dd/MMMMM/yyyy - HH:mm')"> </td>
                    <td>
                    <a th:onclick="eliminar([[$p.id_pac]])" href="#">Borrar</a>
                    <a th:href="@/listar/+$p.id_pac">Modificar</a>
                    </td>
                </tr>
            </tbody>
        </table>

在这里您可以看到该数据库记录是如何存储在 MySql 中的,以及归档日期是如何在视图中以 +1 小时打印的:

我尝试将 MySQL 中的时区更改为许多不同的值,但没有成功: SET time_zone = "+00:00";

谢谢

【问题讨论】:

MySQL & jdbc 连接器版本? 我不知道具体如何检查“MySQL & JDBC 连接器版本”。这些是我添加到 pom.xml 中的 JPA 和 MySQL 的依赖项: spring-boot-starter-data-jpamysql-connector-java 这些是与JDBC和MySQL驱动相关的appliation.properties: spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.jpa.database-platform = org .hibernate.dialect.MySQL5Dialect 您需要设置您的时区。你可以在这里查看类似的问题***.com/questions/32150292/mysql-now-is-1-hour-behind 自 8.0.23 以来 jdbc 连接器的会话时区的默认行为与以前的版本相比有所不同 【参考方案1】:

以防万一这篇文章可以帮助其他人:我已经通过在 application.properties 文件中链接数据库时删除参数 ?serverTimezone=UTC 来解决它:

【讨论】:

以上是关于在 Thymeleaf + Spring Boot 中检索错误时间的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot入门——thymeleaf模板使用

spring boot使用thymeleaf

Spring Boot中Thymeleaf引擎动态刷新

Thymeleaf 3 URL 解析不适​​用于 Spring Boot 4 + Spring Security

spring-boot-thymeleaf

spring boot整合Thymeleaf