В Python я могу получить время для разных часовых поясов в формате ISO, например:
>>> import datetime
>>> import pytz
>>> datetime.datetime.now(tz=pytz.timezone('America/New_York')).isoformat()
'2019-03-15T04:01:23.919800-04:00'
>>> datetime.datetime.now(tz=pytz.timezone('Asia/Bangkok')).isoformat()
'2019-03-15T15:01:23.919800+07:00'
Теперь мне нужно получить метки времени из postgresql в том же формате. После некоторых исследований лучшее, что я придумал, это:
postgres=# set time zone 'America/New_York';
SET
postgres=# select to_json(now());
to_json
------------------------------------
"2019-03-15T04:32:13.628323-04:00"
Возможно ли это сделать без изменения часового пояса сеанса базы данных? Что-то вроде:
postgres=# select to_json(now() at time zone 'America/New_York') NYC,
postgres-# to_json(now() at time zone 'Asia/Bangkok') Bangkok;
nyc | bangkok
------------------------------+------------------------------
"2019-03-15T04:41:07.789954" | "2019-03-15T15:41:07.789954"
, что в противном случае является правильным, но отсутствует смещение UTC.