小编Thi*_*sen的帖子

@DateTimeFormat转换时带有夏令时错误

我在使用@DateTimeFormat注释转换实际不存在的日期时遇到问题.

例如,当我设置日期15/10/2017时,我的实体中的注释如下:

@Column(nullable = false)
@NotNull
@DateTimeFormat(pattern = "dd/MM/yyyy")
private Date dataVisita;
Run Code Online (Sandbox Code Playgroud)

我收到错误:

Failed To Convert Property Value Of Type Java.Lang.String To Required Type Java.Util.Date For Property DataVisita; 
Nested Exception Is Org.Springframework.Core.Convert.ConversionFailedException: 
    Failed To Convert From Type Java.Lang.String To Type @Javax.Persistence.Column @Javax.Validation.Constraints.NotNull @Org.Springframework.Format.Annotation.DateTimeFormat Java.Util.Date For Value 15/10/2017; 
Nested Exception Is Java.Lang.IllegalArgumentException: 
    Cannot Parse "15/10/2017": Illegal Instant Due To Time Zone Offset Transition (America/Sao_Paulo)
Run Code Online (Sandbox Code Playgroud)

我明白错误告诉我日期15/10/2017 00:00:00实际上并不存在,但我想转换为15/10/2017 01:00:00,忽略这种方式问题并找到相应的日期.

有没有办法让我覆盖@DateTimeFormat注释或将格式化程序指向宽松的方法?

java spring date formatter

7
推荐指数
1
解决办法
929
查看次数

聚合项目组通过Spring Data提取日,月和年

要直接,我该怎么做:

group._id = { 
    year: { $year : [{ $subtract: [ "$timestamp", 25200000 ]}] }, 
    month: { $month : [{ $subtract: [ "$timestamp", 25200000 ]}] }, 
    day: { $dayOfMonth : [{ $subtract: [ "$timestamp", 25200000 ]}] }
};
Run Code Online (Sandbox Code Playgroud)

用spring数据

我已经尝试了这个和其他一些形式并没有成功

Aggregation aggregation = Aggregation.newAggregation(
                Aggregation.match(c),
                Aggregation.project("programa", "custo", "duracao", "dataHora")
                    .andExpression("dataHora").minus(25200000).extractDayOfMonth().as("dia")
                    .andExpression("dataHora").minus(25200000).extractMonth().as("mes")
                    .andExpression("dataHora").minus(25200000).extractYear().as("ano"),
                Aggregation.group("programa", "ano", "mes", "dia")
                    .count().as("count")
                    .sum("custo").as("valorTotal")
                    .sum("duracao").as("duracaoTotal")
                    .first("dataHora").as("dataHora"),
                Aggregation.sort(Direction.ASC, "dataHora")
        );
Run Code Online (Sandbox Code Playgroud)

我需要在mongodb中按天,月和年进行分组,否则我需要在代码中转换所有这些分组数据.

提前致谢

java mongodb spring-mongo mongodb-query aggregation-framework

5
推荐指数
1
解决办法
2186
查看次数