首先,我的问题是通过Spring MongoDb的MongoRepository在MongoDB中搜索集合。
我的对象:
{
"_id" : ObjectId("5c78e1f447f39c2eacb229d7"),
"lab" : "xxx",
"type" : "Holiday",
"description" : "Lunar New Year",
"start_date" : ISODate("2019-02-04T02:37:42.152Z"),
"end_date" : ISODate("2019-02-08T06:37:42.152Z"),
"all_day" : true,
"_class" : "xxx.Event"
}
我可以在Mongo query中随心所欲地执行以下操作:
db.getCollection('event').find({"start_date" : {$gte :ISODate( "2019-02-03T02:37:42.152Z") , $lte :ISODate( "2019-02-08T02:37:42.152Z")}})
(您可以用新日期替换ISODate)
但是要在Spring做这件事,我想这样做:
@Query(" $or: [ {start_date : {$gte :ISODate( ?0 ) , $lte :ISODate( ?1)}} , {end_date : {$gte :ISODate( ?0) , $lte :ISODate( ?1)}} ] } ")
List<Event> findAllEventByTime(String from, String to);
但它失败了,我搜索了两个主题:这里和那里
最终
@Query("{ 'start_date' : {$gte : {'$date': '?0'}, $lte :{'$date': '?1'} }}")
List<Event> findAllEventByTime(String from, String to);
但是,我又一次遇到了解析的问题:
2019-03-22 10:09:48.261ERROR 9316 --- [ XNIO-2 task-1]o.z.problem.spring.common.AdviceTrait:内部服务器错误
组织。bson公司。json。JsonParseException:无法将字符串解析为组织中的日期。bson公司。json。JsonReader。visitDateTimeExtendedJson(JsonReader.java:1057)
我建议您:
试用参数:2019年3月22日星期五10:09:48 ICT和2019-03-22T03:09:48.227Z和2016-04-14 00:00:00
这一切都在继续下去。。。你们能帮我修一下吗?
工作流:FE参数(字符串)~
我用其他方法解决:
Page<Event> findAllByStartDateBetweenOrEndDateBetween(Instant fromDate1, Instant toDate1, Instant fromDate2, Instant toDate2, Pageable pageable);
List<Event> findAllByStartDateBetweenOrEndDateBetween(Instant fromDate1, Instant toDate1, Instant fromDate2, Instant toDate2);
@RequestParam Instant startDate, @RequestParam Instant endDate
和使用:
eventRepository.findAllByStartDateBetweenOrEndDateBetween(startDate, endDate, startDate, endDate))
您可以使用如下相同的方法制作Spring数据jpa:-
List<Event> findByStart_dateIsAfterAndEnd_dateIsBefore(Date startDate, Date endDate);
问题内容: 我想将日期字符串解析为日期。我在寻找其他问题,但没有找到答案。 错误消息是java.text.ParseException:而且我不知道怎么了。 你能帮我吗。提前致谢。 编辑:好的。我将其翻译成英文,但是我仍然遇到同样的问题。我不想更改输入,因为它来自邮件数据库。还有其他想法吗? 我发现了问题。我是瞎子 来自数据库的St是,不是 谢谢。 问题答案: 在德语中,“欧洲中部时间”是“Mit
我试图用GMT解析一个表示日期的字符串,但它在我的PC(太平洋)上的时区中打印出来。当我运行下面的时,我得到下面的输出。关于如何让解析器解析并返回GMT日期有什么想法吗?如果您看下面,我正在使用format.settimezone(timezone.gettimezone(“GMT”))设置时区;但它并没有产生预期的结果。 以下代码的输出: 10月29日星期一05:57:00 PDT 2012
问题内容: 我的输入是以2015年7月1日格式为“ 01-07-2015”的日期的字符串表示形式。我正在尝试将其解析为一个变量: 基于JavaDoc,我希望它能起作用。但是,我收到了一条非常友好和有用的信息: 由以下原因引起:java.time.DateTimeException:无法从TemporalAccessor获取LocalDate:{DayOfMonth = 1,MonthOfYear
我的输入是2015年7月1日日期的字符串表示形式,格式为“01-07-2015”。我试图将其解析为变量: 基于JavaDoc,我希望这能起作用。然而,我收到了一条非常友好和有益的信息: 原因:java.time.DateTimeException:无法从TemporalAccessor获取LocalDate:{DayofMonth=1,MonthofYear=7,WeekBasedYear[Wee
当我将格式的字符串对象转换为时,它会给我 我试着这样做:
问题内容: 当我将格式的字符串对象转换为它给我时 我正在尝试这样做: 问题答案: 这里有几个潜在的问题: 您未指定格式 您未指定语言环境 您未指定时区 您正在尝试将返回值(将是引用)转换为-,否则将失败 您想要类似: