Есть ли способ изменить формат даты по умолчанию в Postgres?
Обычно, когда я запрашиваю базу данных Postgres, даты выдаются в виде гггг-мм-дд чч: мм: сс + тц, как 2011-02-21 11: 30: 00-05.
Но у одной конкретной программы даты выходят: гггг-мм-дд чч: мм: сс.с, то есть часовой пояс отсутствует, и он показывает десятые доли секунды.
Очевидно, что-то меняет формат даты по умолчанию, но я не знаю, что и где. Я не думаю, что это параметр конфигурации на стороне сервера, потому что я могу получить доступ к той же базе данных с помощью другой программы и получить формат с часовым поясом.
Я забочусь, потому что он, кажется, игнорирует мои вызовы "установить часовой пояс" в дополнение к изменению формата. Все времена выходят EST.
Дополнительная информация:
Если я напишу «выберите дату из таблицы», я получу формат «нет часового пояса». Но если я напишу «select to_char (somedate :: timestamptz, 'yyyy-mm-dd hh24: mi: ss-tz')», тогда часовые пояса будут работать так, как я ожидал.
Для меня это действительно звучит так, как будто что-то устанавливает все метки времени неявно как "to_char (date :: timestamp, 'yyyy-mm-dd hh24: mi: ss.m')". Но я не могу найти в документации ничего о том, как бы я это сделал, если бы захотел, и не могу найти ничего в коде, который, кажется, делает это. Хотя, поскольку я не знаю, что искать, это мало что доказывает.
Неважно: '(
Я нашел свою проблему. Я думал, что смотрю прямо на строку, возвращаемую из базы данных. Но я упустил из виду, что он считывал его как метку времени, а затем преобразовывал метку времени в строку. Это было скрыто внутри функции getString, которая меня отбросила. Я думал, что это ResultSet.getString, но на самом деле это была наша собственная функция с тем же именем. К сожалению. Какой идиот написал эту функцию ?! О, это был я ...
Спасибо всем, кто пытался помочь. Я дам вам голос за ваши неприятности.