![](/img/trans.png)
[英]How to save LocalDate to MongoDB without time (why is mongo saving date with time even if i save just the date)?
[英]Spring Data Mongo: How to save only date i.e. not time
在其中一個集合中,我有一個字段需要設置為當前日期,例如“ 2018-01-26”。 它不應包含任何時間。 這使我可以輕松地根據日期查詢文檔。 我嘗試使用下面的代碼,它總是在其中節省時間。
@DateTimeFormat(iso= DateTimeFormat.ISO.DATE_TIME)
private Date journeyDate;
要么
@DateTimeFormat(iso= DateTimeFormat.ISO.DATE)
private Date journeyDate;
如何只將日期部分保存在數據庫中?
您實際上無法在Mongo中將日期設置為“ 2018-01-26”。 因為無論我們進行什么轉換,最終我們都需要創建一個Date對象以保存在Mongo中。 沒有時間就不可能存在日期對象。
但是,您可以做的是,您可以通過編寫自定義轉換器並注冊來控制存儲的內容。
在此轉換器中,我正在做的是將所有日期都截斷到一天的開始,這意味着所有日期的時間都設置為00:00:00(與時間無關)。 這樣,您一整天都有相同的時間。 我希望這將有助於編寫您需要的查詢。
@Configuration
public class MongoConverterConfig
{
@Bean
public CustomConversions dateConversions()
{
List<Converter<?, ?>> converterList = new ArrayList<Converter<?, ?>>();
converterList.add(new DateConverter());
return new CustomConversions(converterList);
}
@WritingConverter
static class DateConverter implements Converter<Date, Date> {
@Override
public Date convert(Date input) {
if (input == null) {
return null;
}
return Date.from(Instant.ofEpochMilli(input.getTime()).truncatedTo(ChronoUnit.DAYS));
}
}
}
如果您真的只想在mongo中存儲“ 2018-01-26”,那么您將不得不將其存儲為String,我不建議這樣做。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.