java - Google App Engine 查询过滤器按日期

标签 java google-app-engine parsing

GAE 究竟如何按日期过滤查询结果?

我正在尝试通过查询传递日期戳,但我无法让它工作。

在 Google Dashboard Datastore 查看器中,日期字段存储为 gd:when 类型,格式为:YYYY-MM-DD HH:MM:SS 但在网页上显示时显示为 Mon Jul 15 20:15:35协调世界时 2013 年。

我从 jsp 页面请求字符串 Mon Jul 15 20:15:35 UTC 2013 并对其进行解析,但过滤器无法正常工作。

    String strDatestamp = req.getParameter("stamp");
    String FormatString = "EEE MMM dd HH:mm:ss z yyyy";
    Date datestamp = null;
    try {
        datestamp = new SimpleDateFormat(FormatString).parse(strDatestamp);
    } catch (ParseException e) {
        e.printStackTrace();
    }
    Filter filter = new FilterPredicate
                           ("date", Query.FilterOperator.EQUAL, datestamp);
    Query query = new Query("Example", key).setFilter(filter);

最佳答案

计算机系统中的日期实际上表示为时间,在特定情况下它在内部表示为 unix time以毫秒为单位。自己看看:date.getTime() .

您看到的只是人类可读的表示,缺乏完整的毫秒精度。

要查询特定的秒数,您需要查询一秒内的特定时间范围。因此,您需要在 Mon Jul 15 20:15:35 UTC 2013Mon Jul 15 20:15:36 UTC 2013 之间进行范围查询(注意第二个更改) :

Filter startFilter = new FilterPredicate("date", Query.FilterOperator.GREATER_THAN_OR_EQUAL, startSecond);
Filter endFilter = new FilterPredicate("date", Query.FilterOperator.LESS_THAN, nextSecond);

关于java - Google App Engine 查询过滤器按日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17700709/

相关文章:

google-app-engine - 在 Google App Engine 中保护 RESTful API

java - 我收到此异常 java.sql.SQLException : 404 OK when i run my appengine app on local

java - 如何逐页获取具有整个文件内容的base64的PDF文件内容?

c# - 搜索百分比字符串

python - 从Python中的配置文件读取 token

java - 如何在叠加层中显示搜索结果页面

java - 需要中断的服务可以使用Guava的AbstractExecutionThreadService吗?

java - 尝试构建 AppiumServiceBuilder 时出现 Appium 错误

google-app-engine - 我想在 firebase 存储上获取我的图像的服务 url

java - 用于嵌套属性的 Jackson2 PropertyFilter,还是有其他方法?