我有一些時間戳存儲爲Postgres類型timestamp without time zone
。使用node-postgres獲取Postgres「沒有時區的時間戳」在utc
我將使用時間戳2013-12-20 20:45:27
作爲示例。我打算這代表UTC時間戳。
在psql中,如果我運行查詢SELECT start_time FROM table_name WHERE id = 1
,我會返回該時間戳字符串,如預期的那樣:2013-12-20 20:45:27
。
但是,如果在我的Node應用程序中,我使用node-postgres庫來運行相同的查詢,我會在本地時區返回一個時間戳:Fri Dec 20 2013 20:45:27 GMT-0600 (CST)
。這是一個Javascript日期對象,但它已經存儲爲該時區。我真正想要的是一個代表2013-12-20 20:45:27 GMT+0000
的日期對象(甚至只是一個字符串)。我已經知道這次是UTC。
我試過在我的postgresql.conf文件中設置時區參數爲:timezone = 'UTC'
,結果沒有區別。
我在做什麼錯?
編輯
這個問題似乎是在這個文件:https://github.com/brianc/node-postgres/blob/master/lib/types/textParsers.js
如果從Postgres的返回的日期字符串時區指定(即Z
,或+06:30
沒有,那麼它只是構建一個JavaScript日期對象,我相信它只包含本地時區。我可能需要更改我的應用程序以在DB中存儲時區或覆蓋此轉換器。
在我的情況下,由於夏令時問題,這個解決方案無論如何都比較安全。 –