首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >难以将zonedatetime字符串转换为mongodb的日期

难以将zonedatetime字符串转换为mongodb的日期
EN

Stack Overflow用户
提问于 2021-06-10 16:30:36
回答 1查看 437关注 0票数 1

我有这些带有日期的mongo文档,如下所示:这个日期是java: ZonedDateTime.now(),但它作为字符串进入mongo:

代码语言:javascript
复制
db.test.insert({"dateString" : "2020-07-24T11:06:53.975+02:00[GMT+02:00]"})

因此,我想要提取一个报告,但是到目前为止对它进行了格式化,这样我就可以在管道中做一些不同的事情了:

试过:

代码语言:javascript
复制
db.test.aggregate([{$project: {date: {"$dateFromString": {"dateString": "$dateString", "format": "yyyy-MM-dd'T'HH:mm:ss", "timezone": "Etc/GMT+2"}}}}])

但我似乎无法正确地掌握格式:

错误解析日期字符串'2020-07-24T11:06:53.975+02:00GMT+02:00';0:格式文字找不到'2';1:格式文字找不到'0';2:格式文字找不到'2';3:格式文字找不到'0';5:格式文字找不到'0';6:格式文字找不到'7';8:格式文字找不到'2';9:格式文字找不到'4';10:格式文字找不到'T';11:格式文字找不到'1';12:格式文字未找到'1';13:格式文字未找到'0';14:格式文字未找到‘0’;15:格式文字未找到'6';16:格式文字未找到‘;17:格式文字未找到'5';18:格式文字未找到'3';19:格式文字未找到’3‘;20:格式文字未找到'9';21:格式文字未找到'7';22:格式文字未找到'5';23:未找到格式文字'+'“

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-10 17:11:50

日期运算符将不理解自定义格式,也不会理解偏移时区。

  • $substr只选择从0到23个字符的日期
  • 将时区设置为“格林尼治时间”
代码语言:javascript
复制
db.test.aggregate([
  {
    $project: {
      date: {
        "$dateFromString": {
          "dateString": {
            "$substr": [ "$dateString", 0, 23 ]
          },
          "timezone": "GMT"
        }
      }
    }
  }
])

游乐场

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67925141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档