Когда я добавляю order
в мой адрес DB
, хотел бы включить время, которое вы укажете как UTC
.Добавление и возврат времени UTC с использованием PYTZ
ts = time.time()
utc = pytz.utc
orderDateUTC = datetime.utcfromtimestamp(ts).replace(tzinfo=utc)
return add_order_to_db(tableID, userID, restaurantID, orderDateUTC, orderCost, orderStatus, orderItems)
Когда я добавить date
к DB
, я добавляю его в качестве UTC
, а затем попытаться преобразовать его обратно в local time
незадолго до возвращения его пользователю.
add_order_to_db (...)
def add_order_to_db(tableID, userID, restaurantID, orderDateUTC, orderCost, orderStatus, orderItems):
receivedOrder = ORDER(tableID, userID, restaurantID, orderDateUTC, orderCost, orderStatus)
with contextlib.closing(DBSession()) as session:
try:
session.add(receivedOrder)
session.commit()
except exc.SQLAlchemyError, error:
session.rollback()
raise_database_error(error)
else:
au_tz = timezone('Australia/Sydney')
au_dt = au_tz.normalize(orderDateUTC.astimezone(au_tz))
receivedOrder.ORDERSDATE = au_dt
order = Order(receivedOrder, 'true')
return jsonify(data=order.serialize())
сериализации()
def serialize(self):
return {
'orderDate' : self.ORDERSDATE
}
ORDERSDATE
определяется как:
ORDERSDATE = Column(DateTime, nullable=False)
Вопрос заключается в том, что time
не возвращается обратно должным образом.
returned output
и данные в DB
является: orderDate: "Mon, 06 Apr 2015 01:13:00 GMT"
Однако мне нужно returned output
быть orderDate: "Mon, 06 Apr 2015 11:13:00 GMT"
Я считаю, что если я вернусь return str(au_dt)
, я получаю правильный вывод, но в другой форме: 2015-04-06 11:13:37.461000+10:00