Python GAE数据存储datetime query.filter按天
Python谷歌应用程序引擎GAE 在数据存储中,我在条目上存储了datetime,这是UTC预期的行为 问题在于使用query.filter获取另一时区中的特定日期 示例GAE数据存储日期时间条目UTC: 2014-11-4 UTC下午11点 2014-11-4 UTC下午12点 2014年11月4日凌晨1时UTC 使用UTC按日期提取这些条目非常简单: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
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时间将不正确。