【发布时间】:2021-09-29 19:56:04
【问题描述】:
我有以下请求,格式为“yyyy-MM-dd'T'hh:mm:ss”的两个日期字符串
{
"dataS": "2021-07-22T03:00:00Z",
"dataE": "2021-07-23T03:00:00Z",
}
我需要将此值转换为日期格式来构建以下查询
Query query = new Query();
query.addCriteria(Criteria.where("date").gte(dataS).lte(dataE));
MongoDB中“日期”字段的格式为ISODate,如下: { "date" : ISODate("2019-04-13T03:00:00.000+0000")}
我尝试了两种方法
-
使用字符串值,我有以下查询。此查询不起作用。
查询: { "date" : { "$gte" : "2021-07-22T03:00:00" , "$lte" :"2021-07-23T03:00:00"}, "isDeleted" : false },字段:{ },排序:{ }
-
将String转成Data格式,如下我只得到TimeStamp
DateFormat originalFormatData = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss", Locale.ENGLISH); query.addCriteria(Criteria.where("date").gte(originalFormatData.parse(dataS)).lte(originalFormatData.parse(dataE)));
结果:查询:{ "date" : { "$gte" : { "$date" : 1626933600000 }, "$lte" : { "$date" : 1627019999000 } }, "isDeleted" : false }, 字段:{ },排序:{ }
我想要的最终结果并且适用于查询:
Query: { "date" : { "$gte" : { "$date" : "2021-07-22T03:00:00" }, "$lte" : { "$date" : "2021-07-23T03:00:00" } }, "isDeleted" : false }, Fields: { }, Sort: { }
有人可以帮我解析吗?
【问题讨论】:
标签: string mongodb spring-boot date