sarwar026:
Estoy utilizando siguientes especificaciones en mi proyecto actual (de producción)
- OS: CentOS 7
- Base de datos: MySQL
- Java 8
- Hibernar
- Tomcat Server 8
La base de datos está en servidor independiente de servidor de aplicaciones, pero ambos está en la misma LAN.
Tipo de datos en la tabla de MySQL es: date
para almacenar solamente la fecha y datetime
para ahorrar la fecha junto con el tiempo.
El problema es MySQL guarda cada Fecha 1 día antes de la fecha prevista de applcation. He intentado el siguiente hasta ahora, pero sigue sin suerte:
- He fijado zona horaria tanto para servidor de aplicaciones y base de datos como Asia / Dhaka y verificado esto desde mi aplicación Java también.
- También he creado en la zona horaria Tomcat de archivos del servidor (setenv.sh).
- También he comprobado el SQL generado a partir de hibernación TRACE en las propiedades de log4j archivo en el que la fecha también es la misma que la fecha de entrada.
¿Qué me estoy perdiendo? ¿Alguien puede sugerir?
sarwar026:
Gracias a todos por compartir su experiencia con respecto a la cuestión.
Por fin, lo solucioné cambiando el serverTimezone
atributo de cadena de conexión MySQL en dispatcher-servlet
mi aplicación web Java.
<property name="url" value="jdbc:mysql://x.x.x..x:3306/dbname?characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Dhaka" />