我有这些带有日期的mongo文档,如下所示:这个日期是java: ZonedDateTime.now(),但它作为字符串进入mongo:
db.test.insert({"dateString" : "2020-07-24T11:06:53.975+02:00[GMT+02:00]"})因此,我想要提取一个报告,但是到目前为止对它进行了格式化,这样我就可以在管道中做一些不同的事情了:
试过:
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:未找到格式文字'+'“
发布于 2021-06-10 17:11:50
日期运算符将不理解自定义格式,也不会理解偏移时区。
$substr只选择从0到23个字符的日期db.test.aggregate([
{
$project: {
date: {
"$dateFromString": {
"dateString": {
"$substr": [ "$dateString", 0, 23 ]
},
"timezone": "GMT"
}
}
}
}
])https://stackoverflow.com/questions/67925141
复制相似问题