当前位置: 首页 > 知识库问答 >
问题:

Springboot+mongodb将字符串转换为日期

周博达
2023-03-14
{  
    "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));

查询:{“日期”:{“$GTE”:“2021-07-22T03:00:00”,“$LTE”:“2021-07-23T03:00:00”},“isdeleted”:false},字段:{},排序:{}

将字符串转换为数据格式,如下所示,我只得到时间戳

DateFormat originalFormatData=new SimpleDateFormat(“yyyy-mm-dd't'hh:mm:ss”,locale.english);addCriteria(criteria.where(“date”).gte(originalformatdata.parse(dataS)).lte(originalformatdata.parse(dataE));

 Query: { "date" : { "$gte" : { "$date" : "2021-07-22T03:00:00" }, "$lte" : { "$date" : "2021-07-23T03:00:00" } }, "isDeleted" : false }, Fields: { }, Sort: { }

有人能帮我解析吗?

共有1个答案

韩欣怿
2023-03-14

dateformat#parse(字符串源)实际上从字符串生成date对象。应使用dateformat#format(Date Date)将日期格式化为字符串表示形式。

从日期格式的Javadoc解析:

从给定字符串的开头分析文本以产生日期。方法不能使用给定字符串的整个文本。

但在你走得太远之前,先看看下面的答案:

Spring data mongodb查询自动将String转换为ObjectId

Jackson映射器序列化/反序列化ObjectId

 类似资料:
  • 问题内容: 是否可以将“ 20110210”转换为2011-02-10? 我试过,我得到 我究竟做错了什么? 我有新的SimpleDateFormat(“ yyyy-MM-dd”)而不是新的SimpleDateFormat(“ yyyyMMdd”) 问题答案: 这对我有用,不会引发异常:

  • 我正在尝试转换一个表示存储在SQLite中的日期的字符串。 日期存储到sqlite中,如下所示: 根据Java文档,方法: 返回此日期的字符串表示形式。格式设置相当于使用具有格式字符串“eee MMM dd hh:mm:ss zzz yyyy”的SimpleDateFormat,看起来类似于“tue Jun 22 13:07:00 PDT 1999”。则使用当前默认时区和区域设置。如果需要控制时区

  • 我想将MongoDB值字段的字符串转换为整数,然后计算平均值。 这是我的JSON: 但我也得到了这样的输出: {“_id”:ObjectId(“5C509604FC007808C427EDCB”),“values”: [“24.3”,“23.3”,“25.3”,“31.3”,“90.3”],“avgvalue”:null} 期望值应该是values字段的平均值。 我需要对嵌套文档值进行某种转换。

  • 问题内容: 该java.util.Date 方法显示当地时区的日期。 在几种常见的情况下,我们希望以UTC格式打印数据,包括日志,数据导出以及与外部程序的通信。 在UTC中创建String表示形式的最佳方法是什么? 如何用更好的格式替换无法排序的juDate 格式(感谢@JonSkeet!)? 附录 我认为以自定义格式和时区打印日期的标准方法非常繁琐: 我一直在寻找像这样的单线: 问题答案: 遵循

  • 问题内容: 我想要这种格式 问题答案: 您需要先 解析 日期字符串(使用方法),才能 使用与格式匹配的格式获取对象。 然后使用所需的格式来 格式化 Date对象(Use 方法)以获取字符串。 输出:- 第一种格式是RFC 822 TimeZone与您的日期字符串匹配。有关在日期格式中使用的其他各种选项,请参见。

  • 我在字符串中获取日期,我想将其转换为给定的日期格式。任何人都可以指导我该怎么做? 我得到这样的日期,我想把它转换成这个格式。 是每个月的默认值。