【发布时间】:2023-03-30 12:26:01
【问题描述】:
我正在尝试以以下格式从 MongoDB 读取日期字段
Formate: YYYY-MM-dd HH:mm:ss.SSSSSS
2017-01-23-10.46.07.812000 - DB2
2017-01-23T16:46:07.812Z - Stored in MongoDB (While viewing from GUI tool)
Mon Jan 23 22:16:07 IST 2017 - Result/Reading from MongoDB
// Formatter for the input date
final DateTimeFormatter inputFormat = DateTimeFormatter.ofPattern("EEE MMM dd HH:mm:ss zzz yyyy");
final ZonedDateTime dateFiledParsed = ZonedDateTime.parse(dateFiled.toString(), inputFormat);
final DateTimeFormatter outputFormat3 = DateTimeFormatter.ofPattern("YYYY-MM-dd HH:mm:ss.SSSSSS");
System.out.println(outputFormat3.format(publicationDateParsed));
Result: 2017-01-23 22:16:07.000000
结果 2017-01-23 22:16:07.000000,而不是 000 应该是 812(原始值:2017-01-23-10.46.07.812000)
注意:使用 MongoDB Java 驱动程序 3.4。
提前谢谢你!
婆罗洲
【问题讨论】:
-
如果它实际上是一个 BSON 日期(这意味着它在
mongoshell 中查看时显示为ISODate),那么解析为java.util.Date的任何内容都是查询的预期输入格式。如果您发送任何其他格式,那么它将不匹配。另请注意,除非您了解转换过程,否则请使用 UTC 值而不是本地时间。 -
什么是
dateFiled或dateFiled.toString()的字符串输出? -
@Seelenvirtuose - dateFiled 是“日期 dateFiled = “某个日期”
标签: java mongodb mongodb-java mongodb-java-3.3.0