我的日期字符串格式是這樣的:2012年1月2日 在Instant.parse()方法之後,即時實例變爲2012年1月1日的日期是1天前,爲什麼?如果原來的日期字符串爲2012年1月1日,即時將是12月31日,2011年在MongoDB中的日期:當將日期對象插入Mongo數據庫時,日期比它自己早1天
String dateString="Jan 1, 2012";
Instant instant = Instant.parse(dateString, new DateTimeFormatterBuilder()
.appendMonthOfYearShortText()
.appendLiteral(" ")
.appendDayOfMonth(1)
.appendLiteral(", ")
.appendYear(4, 4)
.toFormatter());
DateTime dateTime = new DateTime(instant);
Date date = new Date(dateTime.getMillis());
document.append("time", new Date(dateTime.getMillis()));
tagsDbCollection.insert(document);
我使用MongoDB中存儲這些日期。我已經測試過,它顯示格式化日期字符串 - >即時沒有錯誤。 但是,當我將這個Date類型對象插入到MongoDB中時,MongoDB中的日期字符串早於1天。爲什麼?
在MongoDB中:
/* 0 */
{
"_id" : ObjectId("50221a40da74d74053abb445"),
"time" : ISODate("2011-12-31T14:00:00Z")
}
您是否嘗試添加時區組件?它可能與你的本地和日期抵消你的時區的東西。 – 2012-08-07 21:22:50