如何使用 MapStruct 将日期字符串转换为另一种格式?

du-*_*-it 2 format date mapstruct

我正在使用 MapStruct 将值从源映射到目标类。两个类都应具有日期属性,但日期格式不同。如何在使用 MapStruct 映射属性时转换日期格式?

源类的日期格式:2018-05-18T18:43:33.623+0200

目标班级日期格式:2018-05-18

Fil*_*lip 5

我认为您的日期属性是String类型。

您可以为此创建一个自定义限定方法,并选择该方法来映射源和目标。查看基于限定符的映射方法选择

它可以看起来像:

@Mapper
public interface MyMapper {

    @Mapping(target = "dateProperty", source = "dateProperty", qualifiedBy = WithTimezoneToLocalDate.class)
    Target map(Source source);

    @WithTimezoneToLocalDate
    default String timezoneToLocalDate(String source) {
        // Do your conversion here
    }

}


import org.mapstruct.Qualifier;

@Qualifier
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.CLASS)
public @interface WithTimezoneToLocalDate {
}
Run Code Online (Sandbox Code Playgroud)