Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.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 GAE数据存储datetime query.filter按天_Python_Google App Engine_Datetime_Timezone_Google Cloud Datastore - Fatal编程技术网

Python GAE数据存储datetime query.filter按天

Python GAE数据存储datetime query.filter按天,python,google-app-engine,datetime,timezone,google-cloud-datastore,Python,Google App Engine,Datetime,Timezone,Google Cloud Datastore,Python谷歌应用程序引擎GAE 在数据存储中,我在条目上存储了datetime,这是UTC预期的行为 问题在于使用query.filter获取另一时区中的特定日期 示例GAE数据存储日期时间条目UTC: 2014-11-4 UTC下午11点 2014-11-4 UTC下午12点 2014年11月4日凌晨1时UTC 使用UTC按日期提取这些条目非常简单: query_date = datetime.now().replace(hour=0, minute=0, second=0, micros

Python谷歌应用程序引擎GAE

在数据存储中,我在条目上存储了datetime,这是UTC预期的行为

问题在于使用query.filter获取另一时区中的特定日期

示例GAE数据存储日期时间条目UTC:

2014-11-4 UTC下午11点 2014-11-4 UTC下午12点 2014年11月4日凌晨1时UTC 使用UTC按日期提取这些条目非常简单:

query_date = datetime.now().replace(hour=0, minute=0, second=0, microsecond=0)
query.filter('DateTimeUTC >=', query_date)
query.filter('DateTimeUTC <', query_date+timedelta(days=1))
或者像这样:

start_date = datetime.strptime('11/04/2014', '%m/%d/%Y')
end_date = datetime.strptime('11/05/2014', '%m/%d/%Y')
query.filter('DateTimeUTC >=', start_date)
query.filter('DateTimeUTC <', end_date)

然而,让我们考虑这一事实,尽管这三个条目是按照UTC输入的11 / 04 / 2014,原始用户处于PST,从而使得第三个条目实际上在11 / 03 / 2014,而不是在第四1AM UTC=前一天5PM PST。 因此,使用此示例代码和数据,让我们设想一组更大的数据,所有数据都由用户在PST、EST等中输入。现在,您正试图为每个数据提取特定的天数。让我们关注PST以保持一致性—UTC-8

如何在特定时区中查询.筛选天数,而不是使用UTC的天数定义

再一次,试着坚持PST,这样我们就在同一页上了


我试图用这种格式使事情简单明了,但是,如果我在GAE上的代码在性能方面比较慢,或者有一条经过速度证明比这更好的路线,那么我完全赞成。

将本地日的开始和结束时间转换为UTC,然后在这些UTC时间之间查询。

我知道更新现有实体会很痛苦,但为什么不将日期时间存储为PST而不是PST呢UTC?或者,当您构建开始/结束日期时,将其偏移8以成为PST?当您有一个全局应用程序,其中有多人在不同的时区PST、EST等时,这不起作用。这有意义吗?有意义吗?当执行搜索时,他们总是基于PST还是从任何人所在的位置?如果是本地时间,那么当您执行筛选时,只需从times中减去时区。GAE仅存储在UTC中,因此通过转换将其存储在服务器上的PST中,您将遇到一个问题,因为如果您说“然后转换为EST”,存储在UTC环境中的PST时间将不正确。