TypeError:无法比较offset-naive和offset-aware datetimes

时间:2015-04-10 02:18:59

标签: python mysql datetime sqlalchemy

托管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中,ORDERSDATEDatetime变量。

1 个答案:

答案 0 :(得分:-1)

如何通过将偏移量应用到当前UTC时间来保留日期时间对象的偏移天性?

 tz = pytz.timezone('Australia/Sydney')
 orderDate = datetime.datetime.now() +  tz._utcoffset