gpt4 book ai didi

java - 如何使用 Java 从 MongoDB 读取日期(时间戳)

转载 作者:行者123 更新时间:2023-12-01 20:18:31 29 4
gpt4 key购买 nike

我正在尝试以以下格式从 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。

提前谢谢您!

巴拉蒂

最佳答案

您可以使用Java的SimpleDateFormat相应地格式化日期。例如,假设您使用 the proper ISODate type 在 MongoDB 中插入日期:

> db.test.find()
{
"_id": ObjectId("597813a12dbe1d773beb11d2"),
"date": ISODate("2017-01-23T16:46:07.812Z")
}

此代码打印正确的日期:

Document doc = collection.find().first();
Date date = doc.getDate("date");
SimpleDateFormat formattedDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
formattedDate.setTimeZone(TimeZone.getTimeZone("UTC"));
System.out.println(formattedDate.format(date));

输出是:

2017-01-23 16:46:07.812

关于java - 如何使用 Java 从 MongoDB 读取日期(时间戳),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45296105/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com