appengine - 按本地时间查询数据存储过滤对象

时间:2013-06-12 20:13:00

标签: google-app-engine localization timezone google-cloud-datastore

我在数据存储中有很多数据,我需要使用某天作为参数按日期字段进行过滤。

即,我需要保存日期01/01/13从0:00到23:59保存的所有对象。

问题是如果我的当地时间是GMT-5并且我保存了一个日期为01/01/13 20:00(当地时间GMT-5)的对象,它将保存为02/01/13 01:00,然后当我查询01/01/13的对象时,appengine没有返回我的对象​​,因为它的日期是02/01/13。

我该如何处理?

我使用Objectify管理数据存储

很多

2 个答案:

答案 0 :(得分:2)

由于您已在UTC时间内将对象存储在数据库中(按照建议的做法),因此您还需要以UTC格式查询。

因此,如果您对 2013-01-01 00:00:00 -0500 2013-01-02 00:00:00 -0500之间的时间对象感兴趣那么你应该查询 2012-12-31 19:00:00Z 2013-01-01 19:00:00Z 之间的时间。

答案 1 :(得分:1)

您可以为您的类添加一个索引整数属性,在该类中您还可以将日期保持为YYYYMMDD,而不是小时。这样,您可以使用此属性执行查询并检索所需的实体。