测试: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 类型获取的数据时 没有时区的。

 

测试完毕。

需要合理使用。

posted @ 2022-03-22 19:41  快乐的欧阳天美1114  阅读(1912)  评论(0编辑  收藏  举报