Định dạng chuỗi ngày của tôi giống như sau: Ngày 2 tháng 1 năm 2012 Sau phương thức Instant.parse() ngày 1 tháng 1 năm 2012, sớm hơn 1 ngày, tại sao? Nếu chuỗi ngày đầu tiên là ngày 01 tháng 1 2012, Instant sẽ là ngày 31 tháng mười hai, 2011.ngày trong MongoDB: khi chèn đối tượng Ngày vào cơ sở dữ liệu Mongo, ngày trở thành 1 ngày sớm hơn chính nó
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);
Tôi đang sử dụng MongoDB để lưu trữ những ngày này. Tôi đã thử nghiệm và nó cho thấy khi định dạng chuỗi ngày-> tức thì không có lỗi. Nhưng khi tôi chèn đối tượng Kiểu ngày tháng này vào MongoDB, chuỗi ngày trong MongoDB sẽ trở thành 1 ngày trước đó, tại sao?
Trong MongoDB:
/* 0 */
{
"_id" : ObjectId("50221a40da74d74053abb445"),
"time" : ISODate("2011-12-31T14:00:00Z")
}
Bạn đã thử thêm thành phần múi giờ chưa? Nó có thể là một cái gì đó với địa phương của bạn và ngày nhận được bù đắp bởi múi giờ của bạn. –