gpt4 book ai didi

java - Spring Data Mongo : How to save only date i. e。不是时间

转载 作者:行者123 更新时间:2023-12-02 11:42:18 25 4
gpt4 key购买 nike

在其中一个集合中,我有一个字段需要设置为当前日期,例如“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”,那么您必须将其存储为字符串,我不建议这样做。

关于java - Spring Data Mongo : How to save only date i. e。不是时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48462554/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com