我的日期字符串格式是这样的:Jan 2, 2012 在 Instant.parse() 方法之后,instant instance 变成了 2012 年 1 月 1 日的日期,比它早了 1 天,为什么?如果原始日期字符串是 2012 年 1 月 1 日,则即时将是 2011 年 12 月 31 日的日期。
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")
}