Как я могу преобразовать строку даты в другой формат, используя MapStruct? - PullRequest
0 голосов
/ 18 мая 2018

Я использую MapStruct для отображения значений из источника в целевой класс.Оба класса должны иметь свойство date, но с разными форматами даты.Как преобразовать формат даты при сопоставлении свойств с помощью MapStruct?

Формат даты из исходного класса: 2018-05-18T18: 43: 33.623 + 0200

Формат даты целевого класса: 2018-05-18

1 Ответ

0 голосов
/ 19 мая 2018

Я предполагаю, что ваши свойства даты имеют тип 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.TYPE)
@Retention(RetentionPolicy.CLASS)
public @interface WithTimezoneToLocalDate {
}
...