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 類型獲取的數據時 沒有時區的。
測試完畢。
需要合理使用。