我将一天中的时间存储在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小时偏移的问题。