У меня есть приложение Perl Catalyst, которое несколько раз хранится в базе данных MySQL. Время имеет тип TIMESTAMP и инициализируется функцией NOW().
При считывании времени они оказываются в часовом поясе базы данных по умолчанию. Однако при использовании оболочки mysql я могу легко установить часовой пояс с помощью SET time_zone = '+03:00'; и получить правильное местное время для своего часового пояса.
Есть ли способ установить подобное время в Catalyst или DBIx во время выполнения?
Я хочу иметь возможность поддерживать разные часовые пояса для разных пользователей, поэтому недостаточно просто изменить часовой пояс по умолчанию для базы данных. Я также знаю, что я могу отформатировать время в Perl после того, как получу данные из MySQL, но с Catalyst, DBIx и Template Toolkit происходит так много автоматизации, что получить правильные данные из базы данных для начала было бы так много. более удобно.
TIMESTAMP
в объекты DateTime и работать с ними. Возможно, введите автоматический фильтр в свой класс View, который всегда применяется к ним, и пусть DateTime обрабатывает преобразование. - person simbabque   schedule 09.12.2015