Postgres type としていくつかのタイムスタンプが保存されていtimestamp without time zone
ます。
タイムスタンプ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 パラメータを: に設定しようとしましたがtimezone = 'UTC'
、結果に違いはありません。
私は何を間違っていますか?
編集
問題はこのファイルにあるようです: https://github.com/brianc/node-postgres/blob/master/lib/types/textParsers.js
Postgres から返された日付文字列にタイムゾーンが指定されていない場合 (つまり、Z
または+06:30
DB のタイム ゾーンを変更するか、このコンバーターをオーバーライドします。