mysql date java 出错_java – 在应用程序中的日期时间,但在mysql [时区]错误

问题:在app server中的正确时间,在数据库中是错误的

我在中国,时区是UTC 8

我用hibernate.实体定义如下(语言:Scala)

class CargoJournal {

@Type(`type`="org.jadira.usertype.dateandtime.joda.PersistentLocalDateTime")

var deliverTime: LocalDateTime = _

@Temporal(TemporalType.TIMESTAMP)

@Column(nullable=false)

var logDate:Date = _

}

我打开hibernate日志,在我的app服务器中看到以下内容.当前时间是Thu Sep 13 11:08:44 CST 2012

insert into wms_history_cargo_journal (deliver_time, log_date)

binding parameter [1] as [TIMESTAMP] - 2012-09-13 11:08:44.25

binding parameter [2] as [TIMESTAMP] - Thu Sep 13 11:08:44 CST 2012

在我的数据库服务器:

mysql> select timediff(now(),convert_tz(now(),@@session.time_zone,'+00:00'));

+----------------------------------------------------------------+

| timediff(now(),convert_tz(now(),@@session.time_zone,'+00:00')) |

+----------------------------------------------------------------+

| 08:00:00 |

+----------------------------------------------------------------+

所以mysql时区是对的. UTC 8

从mysql中选择后:

mysql> SELECT deliver_time, log_date FROM wms_history_cargo_journal;

+---------------------+---------------------+

| deliver_time | log_date |

+---------------------+---------------------+

| 2012-09-13 11:08:44 | 2012-09-13 03:08:44 |

+---------------------+---------------------+

log_date错了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值