Прежде всего, я хотел бы сохранить свои данные как UTC, потому что это хорошая отправная точка.
Итак, позвольте мне спросить это: зачем вам время в EST, это для конечного пользователя, или вам нужно сделать логику на сервере, и вам нужно это в EST?
Если это для конечного пользователя, простое решение состоит в том, чтобы позволить браузеру пользователей обрабатывать преобразование в правильное время. На сервере преобразуйте объект datetime в отметку времени:
timestamp = time.mktime(datetime_obj.timetuple()) * 1000
А затем на веб-странице создать экземпляр объекта Date:
var date_obj = new Date({{ timestamp }});
var datetime_string = date_obj.toString();
// the datetime_string will be in the users local timezone
Теперь, с другой стороны, если вы хотите, чтобы время в правильной зоне на сервере было таким, чтобы вы могли выполнять на нем логику. Я рекомендую воспользоваться помощью python-dateutil . Это позволит вам легко переключаться в другой часовой пояс:
from datetime import datetime
from dateutil import zoneinfo
from_zone = zoneinfo.gettz('UTC')
to_zone = zoneinfo.gettz('America/New_York')
utc = created # your datetime object from the db
# Tell the datetime object that it's in UTC time zone since
# datetime objects are 'naive' by default
utc = utc.replace(tzinfo=from_zone)
# Convert time zone
eastern_time = utc.aztimezone(to_zone)
Теперь, если вы действительно хотите сохранить дату и время в EST, вам нужно изменить время на сервере БД (как сказал Аджай Ядав и Гор). Я не знаю, почему вы хотите хранить их как EST, но опять же, я не знаю, какое у вас приложение.