托管db
的服务器位于U.S
。当我向db
添加项目时,我希望使用Australia/Sydney
时间存储时间。无论用户所在的国家/地区,如果他们检索此记录,都应使用Australia/Sydney
时间返回。目前我这样做:
tz = pytz.timezone('Australia/Sydney')
orderDate = datetime.now(tz)
return add_order_to_db(orderID, orderDate, orderCost) # Adds an ORDER object to db
当我想要更新上述orderDate
对象的ORDER
时,会出现此问题。
tz = pytz.timezone('Australia/Sydney')
orderDate = datetime.now(tz)
with contextlib.closing(DBSession()) as session:
try:
existingOrder = session.query(ORDER).filter_by(ORDERSID=orderID).first()
existingOrder.ORDERSDATE = orderDate
session.commit()
except exc.SQLAlchemyError, error:
session.rollback()
raise_database_error(error)
ORDER对象
class ORDER(Base):
__tablename__ = 'ORDERS'
ORDERSID = Column(Integer, primary_key=True)
ORDERSDATE = Column(DateTime, nullable=False)
ORDERSCOST = Column(Numeric(19, 4), nullable=False)
在mySQL
中,ORDERSDATE
是Datetime
变量。
答案 0 :(得分:-1)
如何通过将偏移量应用到当前UTC时间来保留日期时间对象的偏移天性?
tz = pytz.timezone('Australia/Sydney')
orderDate = datetime.datetime.now() + tz._utcoffset