【发布时间】:2017-05-30 09:37:19
【问题描述】:
我不明白如何以特定格式在 MongoDB 中保存日期和时间,例如“eventDateFrom”。
我尝试这样做:
部分事件类: 公共类事件{
@Id
private String id;
private String eventTitle;
@DateTimeFormat(pattern = "MM/dd/yyyy HH:mm:ss")
private Date eventDateFrom;
private String eventDateTo;
private Integer minEventPartcipants;
private String eventDateConfirmTo;
private String location;
private String minEventTime;
private List<Participant> participantList = new ArrayList<>();
RunAtStart 类的一部分:
Event event = new Event();
event.setEventTitle("Wyjazd na rower Turbacz");
event.setEventDateFrom(new Date("05/27/2017 10:00:00"));
event.setEventDateTo("27.05.2017 22:00:00");
event.setMinEventPartcipants(2);
event.setEventDateConfirmTo("26.05.2017 10:00:00");
event.setLocation("Lindego 13a");
event.setMinEventTime("06:00:00");
但是“eventDateFrom”的时间是错误的。
MongoDB 文档:
{
"_id" : ObjectId("592d34dcc5f2fd2d204d7db4"),
"_class" : "info.wzielezicki.app.MeetHelp.model.Event",
"eventTitle" : "Wyjazd na rower Turbacz",
"eventDateFrom" : ISODate("2017-05-27T08:00:00.000Z"),
"eventDateTo" : "27.05.2017 22:00:00",
"minEventPartcipants" : 2,
"eventDateConfirmTo" : "26.05.2017 10:00:00",
"location" : "Lindego 13a",
"minEventTime" : "06:00:00",
"participantList" : []
}
- 我做错了什么?
- 定义日期和时间格式的更好方法是什么?
【问题讨论】:
-
1.您正在使用字符串。 2. 是的,有更好的方法,使用 BSON 日期。在 Java 中,您提供
java.util.Date。见How to insert a document with date in mongo? -
看起来是时区问题。这篇文章可能会有所帮助:stackoverflow.com/questions/2891361/…
-
@jvwilge 我使用
@DateTimeFormat(pattern = "MM/dd/yyyy HH:mm:ss") private Date eventDateFrom;和TimeZone.setDefault(TimeZone.getTimeZone("UTC"));现在MongoDB 中的eventDateFrom 是"eventDateFrom" : ISODate("2017-05-27T10:00:00.000Z")你怎么看,这是正确的解决方案 -
这取决于您的源时间是否为 UTC。波兰不是UTC,而是UTC+2。我个人更喜欢以 UTC 保存时间和日期(并在首选时区的前端显示它们),这样您就不会遇到夏令时的任何问题。
-
@jvwilge 感谢您提供信息,但我仍然有问题。我更改 eventDateFrom 的模式
@DateTimeFormat(pattern = "dd/MM/yyyy HH:mm:ss"), save event againevent.setEventDateFrom(new Date("27/05/2017 10:00:00")); private Date eventDateFrom;` 现在在 MongoDB 中我可以看到` "eventDateFrom" : ISODate("2019-03-05T10:00:00.000Z"),`
标签: mongodb spring-boot spring-data spring-data-mongodb