1
我有以下表日期時間錯誤
CREATE TABLE mydate(id serial primary key, date timestamp);
數據庫被配置爲在UTC時區:
SHOW TIMEZONE;
TimeZone
----------
UTC
(1 row)
我插入了測試日期表和當我從表中選擇它時,我看到以下結果(看起來是正確的):
db=# SELECT date FROM mydate;
date
---------------------
2015-11-01 00:00:00
現在,當我在Clojure中運行相同的查詢,我得到以下結果:
(q "SELECT date FROM mydate")
=> [[#inst "2015-10-31T22:00:00.000000000-00:00"]]
結果是一個java.sql.Timestamp對象看起來要於2小時後。如果我將該對象轉換爲JodaTime並詢問當前小時,我得到22(我應該得到0)。
不過,如果我使用toString()方法轉換java.sql.Timestamp對象的字符串,我得到以下結果:
「2015年11月1日00:00:00.0」
爲什麼java.sql.Timestamp對象落後了2個小時,爲什麼在將它轉換爲字符串時它看起來是正確的?
我相信'timestamptz'通常被推薦來代替'timestamp'。你看過這個選項嗎? –