Для ввода времени с часовым поясом необходимо в конце строки добавить часовой пояс в виде смещения в часах и минутах от UTC, либо указав название часового пояса.
Смещение от UTC может быть как положительным (+), так и отрицательным (-).
Пример | Описание |
---|---|
04:05:06.789-8 | ISO 8601, с часовым поясом в виде смещения от UTC |
04:05:06-08:00 | ISO 8601, с часовым поясом в виде смещения от UTC |
04:05-08:00 | ISO 8601, с часовым поясом в виде смещения от UTC |
040506-08 | ISO 8601, с часовым поясом в виде смещения от UTC |
040506+0730 | ISO 8601, с часовым поясом, задаваемым нецелочисленным смещением от UTC |
040506+07:30:00 | смещение от UTC, заданное до секунд (не допускается в ISO 8601) |
04:05:06 PST | часовой пояс задаётся аббревиатурой |
2003-04-12 04:05:06 Asia/Barnaul | часовой пояс задаётся полным названием |
Ввод часового пояса
Пример | Описание |
---|---|
PST | аббревиатура (Pacific Standard Time, Стандартное тихоокеанское время) |
America/New_York | полное название часового пояса |
PST8PDT | указание часового пояса в стиле POSIX |
-8:00:00 | смещение часового пояса PST от UTC |
-8:00 | смещение часового пояса PST от UTC (расширенный формат ISO 8601) |
-800 | смещение часового пояса PST от UTC (стандартный формат ISO 8601) |
-8 | смещение часового пояса PST от UTC (стандартный формат ISO 8601) |
Определение разницы с UTC по полному наименованию часового пояса
Раньше в России переводили время на летнее и зимнее с целью более рационального использования светлого времени суток. Весной переводили стрелки часов на час вперед, осенью - на час назад.
В России с недавних пор переход на летнее и зимнее время отменили. В некоторых странах такую практику применяют до сих пор.
Технически переход на летнее/зимнее время - это изменение сдвига часового пояса относительно UTC.
Если при вводе времени указать дату и полное наименование часового пояса, то дата будет использована для определения сдвига относительно UTC.
Посмотри, какой сдвиг был 1 января и 1 июня 2010 года:
SELECT time with time zone '2010-01-01 12:00:00 Asia/Barnaul' AS "Зима 2010",
time with time zone '2010-06-01 12:00:00 Asia/Barnaul' AS "Лето 2010"
# | Зима 2010 | Лето 2010 |
---|---|---|
1 | 12:00:00+06 | 12:00:00+07 |
А какой в эти же даты, но в 2023 году:
SELECT time with time zone '2023-01-01 12:00:00 Asia/Barnaul' AS "Зима 2023",
time with time zone '2023-06-01 12:00:00 Asia/Barnaul' AS "Лето 2023"
# | Зима 2023 | Лето 2023 |
---|---|---|
1 | 12:00:00+07 | 12:00:00+07 |