我的Java:
Date parsedDate = dateFormat.parse(timestamp);
Timestamp dbTimestamp = new Timestamp(parsedDate.getTime());
insertTimestampPreparedStatement.setTimestamp(3, dbTimestamp);PhpMyAdmin/MySQL总是在我的本地时间显示它,即使我这样做了
insertTimestampPreparedStatement.setTimestamp(3, dbTimestamp, Calendar.instance(TimeZone.getTimeZone("UTC"));我不确定MySQL是否将它们存储为知道时区,我检查的唯一方法是直接在phpmyadmin中将时区行更新为NOW(),然后它以格林尼治标准时间显示时间。因此,要么是phpmyadmin/mysql中有一个bug,要么是我的代码没有在正确的时区中发送时间戳。
如何让它在UTC中工作?
发布于 2012-05-12 15:55:49
除非提供了具有特定时区的,否则在检索或存储时间戳时,JDBC驱动程序日历必须使用本地时区。
不幸的是,JDBC规范并不总是清楚地说明驱动程序应该如何行为,而且看起来MySQL做错了。对于MySQL,您可以通过在连接字符串serverTimeZone和相关属性中指定一个或多个选项来强制其使用时区。有关完整列表,请参阅http://dev.mysql.com/doc/connector-j/en/connector-j-reference-configuration-properties.html。
https://stackoverflow.com/questions/10522055
复制相似问题