当我向order
添加DB
时,我想将时间包含在UTC
。
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())
的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
答案 0 :(得分:0)
但是我需要返回的输出为orderDate:" Mon,06 Apr 2015 11:13:00 GMT"
这是不正确的。如果以下情况属实,您就不需要它:
两个
返回的输出和数据库中的数据是:orderDate:" Mon,06 Apr 2015 01:13:00 GMT"
和
我发现如果我返回str(au_dt),我会得到正确的输出,但形式不同:2015-04-06 11:13:37.461000 + 10:00
是相同的时间:
local time = utc time + utc offset
11:13 = 01:13 + 10