带有时区偏移量 (Australia/Sydney) 的 PostgreSQL 格式时间戳为 JSON/String
PostgreSQL Format Timestamp with Timezone Offset (Australia/Sydney) as JSON/String
我想在 Postgres 中获得一个 JSON 对象,它显示带有 Australia/Sydney 时区偏移的时间戳(夏令时为 +10:00 或 +11:00),例如我想json 返回的对象具有以下值:
"2021-07-31T23:59:59.123456+10:00"
"2021-01-31T23:59:59.123456+11:00"
但是当我使用 to_json() 或 to_char() 时,返回的时间戳值是具有偏移量 +00:00
的 UTC
select to_json(current_timestamp::timestamptz),
to_char(current_timestamp::timestamptz, 'YYYY-MM-DD"T"HH24:MI:SS:MSOF')
"2021-01-31T07:47:22.895185+00:00"
2021-01-31T07:47:22:895+00
我尝试添加“在时区 'AEDT'”,但它会移动时间戳值并将偏移量保持在 +00:00。
谢谢。
to_json
根据会话的当前时区设置进行格式化。我建议您先set将会话时区设置为Australia/Sydney
。
set time zone 'Australia/Sydney';
select to_json('2021-01-31T07:47:22.895+00'::timestamptz);
收益率 2021-01-31T18:47:22.895+11:00 我想这就是您所需要的。
我想在 Postgres 中获得一个 JSON 对象,它显示带有 Australia/Sydney 时区偏移的时间戳(夏令时为 +10:00 或 +11:00),例如我想json 返回的对象具有以下值:
"2021-07-31T23:59:59.123456+10:00"
"2021-01-31T23:59:59.123456+11:00"
但是当我使用 to_json() 或 to_char() 时,返回的时间戳值是具有偏移量 +00:00
的 UTCselect to_json(current_timestamp::timestamptz),
to_char(current_timestamp::timestamptz, 'YYYY-MM-DD"T"HH24:MI:SS:MSOF')
"2021-01-31T07:47:22.895185+00:00"
2021-01-31T07:47:22:895+00
我尝试添加“在时区 'AEDT'”,但它会移动时间戳值并将偏移量保持在 +00:00。
谢谢。
to_json
根据会话的当前时区设置进行格式化。我建议您先set将会话时区设置为Australia/Sydney
。
set time zone 'Australia/Sydney';
select to_json('2021-01-31T07:47:22.895+00'::timestamptz);
收益率 2021-01-31T18:47:22.895+11:00 我想这就是您所需要的。