Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python TypeError:无法比较初始偏移量和感知偏移量的日期时间_Python_Mysql_Datetime_Sqlalchemy - Fatal编程技术网

Python TypeError:无法比较初始偏移量和感知偏移量的日期时间

Python TypeError:无法比较初始偏移量和感知偏移量的日期时间,python,mysql,datetime,sqlalchemy,Python,Mysql,Datetime,Sqlalchemy,托管数据库的服务器位于美国。当我向数据库添加项目时,我希望使用澳大利亚/悉尼时间存储时间。无论用户在哪个国家,如果他们检索此记录,则应使用澳大利亚/悉尼时间返回。目前我正在这样做: tz = pytz.timezone('Australia/Sydney') orderDate = datetime.now(tz) return add_order_to_db(orderID, orderDate, orderCost) # Adds an ORDER object to db 当我想更新上述

托管数据库的服务器位于美国。当我向数据库添加项目时,我希望使用澳大利亚/悉尼时间存储时间。无论用户在哪个国家,如果他们检索此记录,则应使用澳大利亚/悉尼时间返回。目前我正在这样做:

tz = pytz.timezone('Australia/Sydney')
orderDate = datetime.now(tz)
return add_order_to_db(orderID, orderDate, orderCost) # Adds an ORDER object to db
当我想更新上述ORDER对象的orderDate时,就会出现问题

订单对象


在mySQL中,ORDERSDATE是一个Datetime变量。

通过仅将偏移量应用于当前UTC时间来保留Datetime对象的偏移量原始特性如何

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

通过仅将偏移量应用于当前UTC时间,保留datetime对象的偏移量原始特性如何

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

为什么要添加可能位于不同时区的本地时间和可能在某个时间点对应于澳大利亚/悉尼utc偏移量的私有属性它不必与datetime.now引用的时间有任何关系?顺便说一句,datetime.nowtz是获取tz时区中当前时间的正确方法。为什么要添加可能位于不同时区的本地时间和可能对应于澳大利亚/悉尼某个时间点的utc偏移量的私有属性?它不必与datetime.now引用的时间有任何关系?顺便说一句,datetime.nowtz是在tz时区中获取当前时间的正确方法。您可以尝试为MySQL db连接设置Australia/Sydney时区,如果使用时间戳类型,则使用naive datetime对象,或者在将时区信息放入db并在从db检索时重新附加它之前,只剥离时区信息。或者最好使用朴素的datetime对象来表示UTC时间,否则某些时间值可能会模棱两可。您可以尝试为MySQL db连接设置Australia/Sydney时区,如果使用时间戳类型,则使用naive datetime对象,或者在将时区信息放入db并在从db检索时重新附加它之前,只剥离时区信息。或者最好使用朴素的datetime对象来表示UTC时间,否则某些时间值可能不明确
 tz = pytz.timezone('Australia/Sydney')
 orderDate = datetime.datetime.now() +  tz._utcoffset