Mi formato de cadena de fecha es así: 2 de enero de 2012 Después del método Instant.parse(), la instancia instantánea se convierte la fecha del 1 de enero de 2012, que es 1 día antes, ¿por qué? Si la cadena de fecha original es Jan 1, 2012, la instantánea será la fecha de dic 31, 2011.fecha en MongoDB: al insertar objetos Fecha en la base de datos Mongo, la fecha se convierte en 1 día anterior a ella
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);
estoy usando MongoDB para almacenar estas fechas. Lo he probado y se muestra al formatear la fecha cadena-> instante no hay ningún error. Pero cuando inserto este tipo de objeto de fecha en MongoDB, la cadena de fecha en el MongoDB se convierte en 1 día antes. ¿Por qué?
En MongoDB:
/* 0 */
{
"_id" : ObjectId("50221a40da74d74053abb445"),
"time" : ISODate("2011-12-31T14:00:00Z")
}
¿Ha intentado agregar un componente de zona horaria? Podría ser algo con tu local y la fecha que se compensa con tu zona horaria. –