Мой формат строки даты такой:2 января 2012 г. После метода Instant.parse ()мгновенный экземпляр становится датой 1 января 2012 г., что на 1 день раньше, почему? Если исходная строка даты — 1 января 2012 г., Instant будет датой 31 декабря 2011 г.
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")
}