摘要
在 DST 条目后
读取一天并更改非日期字段也会将日期字段更改为负 1 天(读取 2 月 22 日持续为 2 月 21 日)
后台
postgres 9.2.7
jboss 4.2.3
centos
DST 最终日期:2015 年 2 月 22 日(2 月 22 日 00:00 我们回到 2 月 21 日 23:00)
富 +----------------------------------------+ | 编号 | 事件日期(日期)| 姓名 | +--------------+------------| | 1 | 2015-02-22 | 约雷克 | | 2 | 2015-02-22 | 天琴座 | | 3 | 2015-02-22 | 斯坦尼斯 | | 4 | 2015-02-22 | 阿斯瑞尔 | | 5 | 2015-02-23 | 将| +----------------------------------------+
Foo.java (Pojo)
java.util.Date for eventDate
问题场景
使用 javaweb 应用程序:使用 id 为 1 的 HQL 加载Foo对象,例如,仅将名称从Iorek 更改为Compass并将其持久化,也会将eventDate更改为 -1 天。新表如下所示:
更改后的 Foo +----------------------------------------+ | 编号 | 事件日期(日期)| 姓名 | +--------------+------------| | 1 | 2015-02-21 | 指南针 | | 2 | 2015-02-22 | 天琴座 | | 3 | 2015-02-22 | 斯坦尼斯 | | 4 | 2015-02-22 | 阿斯瑞尔 | | 5 | 2015-02-22 | 将| +----------------------------------------+
例如,如果我更改一个 id 5 条目,则 eventDate 不会发生任何事情。它只发生在 2015 年 2 月 22 日的条目中(从 DST 过渡到正常)
尝试复制
这种情况只发生在生产环境中,并没有在开发中得到证实。
将开发 java 指向生产数据库(只读访问)我可以确认时间戳已正确读取,日期读取为 2015-02-22(无法在第 22 天测试写入更改的条目)