gpt4 book ai didi

java mongo 日期搜索

转载 作者:太空宇宙 更新时间:2023-11-04 07:56:44 25 4
gpt4 key购买 nike

我们正在使用 Java 并查询 MongoDB。想要获取前一天的记录。例如,我们想要获取昨天注册的所有学生。这是我们使用的查询,

Date toDay = new Date();            
Date twoDaysBack = Util.twoDaysBack(toDay);
query.put("enroldate", new BasicDBObject("$gt", twoDaysBack).append("$lt", toDay));

假设今天是 2012 年 11 月 22 日。此查询显示 21 日和 22 日注册的学生列表,即使我们为今天指定了 $lt。

这里有什么问题?

最佳答案

Tha Java Date对象不仅包括日期,还包括时间,精确到秒。因此,当您创建新的 Date() 时,您将获得当前日期和当前时间。今天任何更早的日期都小于它。当您的数据库包含不带时间的日期时,它会被视为 2012 年 11 月 22 日 00:00:00。这小于 2012 年 11 月 22 日 11:05:22

解决方案:将 toDay 的小时、分钟和秒设置为 0 以排除今天的任何日期。

顺便说一句:许多 Java 程序员都考虑使用该库 jodatime远远优于 Java 的 native 日期和时间处理类。这首先与 java.util.Date 等效,具有较少误导性的名称 DateTime .

关于java mongo 日期搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13509501/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com