ebean的Datetime和Mysql数据之间的时间差



我将一天中的时间存储在Mysql数据库中(如上午7:15(。我不知道为什么,但自从我升级到Play 2.6后,我有4.5个小时的差异。

当我查看Mysql数据库中的原始数据时,我得到了正确的时间:

| id | start_time        | UNIX_TIMESTAMP(start_time) | TIMESTAMPDIFF(SECOND,'1970-01-01 00:00:00',start_time) |
12 | 1970-01-01 08:30:00 |                      27000 |                                                  30600 |

但当我在应用程序中使用它时,我会提前4.5小时获得时间:

Action time start: Thu Jan 01 04:00:00 GMT 1970 - 10800000 id: 12

代码:

Logger.debug("TZ " + Calendar.getInstance().getTimeZone());
for(ActionTime time : action.getTimes()) {
Logger.debug("Action time start: " + time.getStartTime() +  " - " + time.getStartTime().getTime() + " id: " + time.getId());
}

MySql时间是正确的,就像今天早些时候升级前一样。记录器中打印的时区也是正确的(现在是UTC+1,所以我对MySql.中的小时感到满意

我也升级了我的Mysql驱动程序,但恢复到旧的驱动程序并没有什么不同。据我所知,ebean版本的变化是最大的变化吗?

我怎样才能弄清楚会发生什么?

经过大量的跟踪和错误,解决方案是添加

[server]
default-time-zone=+00:00

到服务器配置。这解决了4.5小时的补偿问题。

最新更新