测试:PostgreSQL的timestamp类型
Java 8
PostgreSQL 10
一直对 timestamp without time zone、timestamp with time zone 类型疑惑。
到底改使用哪个呢?
将 new Date() 存入 两个类型的字段中,pgAdmin工具 展示如下:
timestamp without time zone 在显示时,看到了 时区信息:+08。
获取数据后会是怎样呢?
代码如下:
log.info("2 DevTest dt2={}", dt2);
log.info("2 DevTest dt2={}", dt2.getTimestamp1().getTime());
log.info("2 DevTest dt2={}", dt2.getTimestamp1().getTimezoneOffset());
log.info("2 DevTest dt2={}", dt2.getTimestamp2().getTime());
log.info("2 DevTest dt2={}", dt2.getTimestamp2().getTimezoneOffset());
输出日志:
2 DevTest dt2=DevTest(id=9, name=dd, timestamp1=Tue Mar 22 19:21:52 CST 2022, timestamp2=Tue Mar 22 19:21:52 CST 2022, time3=Thu Jan 01 19:21:52 CST 1970, time4=Thu Jan 01 19:21:52 CST 1970)
2 DevTest dt2=1647948112400
2 DevTest dt2=-480
2 DevTest dt2=1647948112400
2 DevTest dt2=-480
timestamp1、timestamp2 字段 的 输出内容相同——包括 时区偏移。
也就是说,timestamp without time zone 也是有时区信息的,虽然,类型里面有 without !
预期应该是怎样的呢?从 timestamp without time zone 类型获取的数据时 没有时区的。
测试完毕。
需要合理使用。