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

 

测试完毕。

需要合理使用。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM