にJava 8 LocalDateを保存しています。春のブート1.5.4.RELEASE
とMongoのドライバ3.4.2
を使用しています。mongo DB
LocalDate
をmongo DB
に保存したいのですが、私は奇妙な問題に直面しています。コンソール上の
LocalDate startDate = LocalDate.now();
LocalDate endDate = LocalDate.of(2020,12,01);
System.out.println("---- StartDate : ---"+startDate);
System.out.println("-----End Date : ----"+endDate);
repository.save(new Person("Mehraj","Malik", startDate, endDate));
出力:
----開始日:2017年8月26日---
-----終了日:---- 2020から12 -01
しかし、MongoDbでは間違った日付が格納されています。
"たstartDate":
は、次のMongoDBからJSONでISODate( "2017-08-25T18:30:00.000Z")、
"endDateに":ISODate(「2020- 11-30T18:30:00.000Z ")
また、インドの時間に合わせて保存時間も間違っていることに気付きました。
誰かが私をここで助けてくれるのですか?コンソール上では日付は正しくありますが、MongoDBではなく、この問題を解決する方法はなぜですか?
MongoDBはUTC datetimeを格納し、LocalDateはタイムゾーンを含まない – Jerry06
Mongo Javaクライアントは、日付オブジェクトを自由に表現できます。文字列を格納する場合は、代わりに代わりに文字列を格納します。 –
LocalDateは時間フィールドを無視します。それらは未定義です。時間が重要な場合は、LocalDate.atStartOfDayを使用してmongodbにdatetimeを格納してください。 – thst