mia data formato della stringa è come questo: 2 gennaio 2012 Dopo il metodo Instant.parse(), l'istanza istante diventa la data del 1 gennaio 2012, che è 1 giorno prima, perché? Se la stringa data originale è 1 Gennaio 2012, Instant sarà la data del 31 dicembre, 2011.Data in MongoDB: quando si inseriscono oggetti Date nel database Mongo, la data diventa 1 giorno prima del sé
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);
sto usando MongoDB per memorizzare queste date. Ho provato e mostra quando si formatta la stringa della data-> istantanea non c'è errore. Ma quando inserisco questo oggetto Date in MongoDB, la stringa di data in MongoDB diventa 1 giorno prima., Perché?
In MongoDB:
/* 0 */
{
"_id" : ObjectId("50221a40da74d74053abb445"),
"time" : ISODate("2011-12-31T14:00:00Z")
}
Hai provato ad aggiungere un componente fuso orario? Potrebbe essere qualcosa con il tuo locale e la data viene compensata dal tuo fuso orario. –