Отчеты Aeroo неправильно обрабатывают поле даты и времени

Мой файл шаблона.odt содержит ссылку на поле datetime в качестве директивы шаблона. Несмотря на то, что директивы char работают отлично, у этой проблемы есть проблема: она показывает время "как есть" в postgresql (часовой пояс UTC) вместо UTC+7.

Я полагаю, что мог бы как-то добавить 7 часов прямо в поле директивы моего файла шаблона.odt, но я не знаю как. Я пробовал что-то вроде

(o.visitdt) + relativedelta(hours=7)

где visitdt - это мое поле даты и времени, но, конечно, оно выдает ошибку. Итак, каков правильный синтаксис тогда? Или я должен сделать что-то еще, чтобы это поле отображалось правильно?

Заранее спасибо.

1 ответ

Решение

Я провожу день, пытаясь подобрать ключ к этому вопросу, и, как я обнаружил, это можно сделать с помощью шаблонной директивы. Как было сказано в вики-отчетах aeroo, единственные функции, связанные со временем (которые он может понять)

Временные функции

dec_to_time - переводит время в чч: мин представление;

время - время доступа и конверсии;

В модуле времени есть команда установки часового пояса, но мне не удалось заставить ее работать, потому что я не могу сначала установить часовой пояс, прежде чем принимать изменения с помощью tzset (), директива отказалась это понимать. Может быть, это был только я, но я решил найти другой путь.

Вот. Возможно, это не лучшее решение, но оно работает, поэтому я буду использовать эту схему, пока не найду что-то лучшее.

Я разделил свое поле даты и времени на три раздела:

time.strftime("%d.%m.%Y", time.strptime(str(o.visitdt), "%Y-%m-%d %H:%M:%S"))

мое свидание, все в порядке,

(time.strptime(str(o.visitdt), "%Y-%m-%d %H:%M:%S"))[3]+07

и это часть часов, я вытащил его из кортежа времени и увеличил на 7 (мой часовой пояс),

time.strftime("%M", time.strptime(str(o.visitdt), "%Y-%m-%d %H:%M:%S"))

последняя часть - минуты (без изменений).

В результате у нас есть точная дата и время, которые мы хотели (например, 19.10.2017 11:00).

PS Конечно, это не сработает, если мы установим часы <7, но, поскольку это выходит за рамки моего доступного интервала времени (8-17), это будет временным решением.

Другие вопросы по тегам