使用 Orika 映射带有日期和时间戳的对象
Mapping objects with Date and Timestamp with Orika
我使用 Orika 来绘制对象。
我想将日期和时间戳字段的格式设置为“yyyy-MM-dd'T'HH:mm:ss.SSSXXX”
对于日期字段,我解决了这个问题:
@Override
public void configure(final MapperFactory orikaMapperFactory) {
orikaMapperFactory.getConverterFactory().registerConverter(new DateToStringConverter("yyyy-MM-dd\'T\'HH:mm:ss.SSSXXX"));
orikaMapperFactory.classMap(OrderDTO.class, Order.class).byDefault().register();
}
但是TimeStamp这个字段我不知道怎么做。
我通过以下方法解决了问题:
public class OrikaTimestampConverter extends CustomConverter<Timestamp, String> {
private final SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
@Override
public String convert(Timestamp source, Type<? extends String> destinationType, MappingContext mappingContext) {
Date date = new Date(source.getTime());
return formatter.format(date);
} }
并添加:
orikaMapperFactory.getConverterFactory().registerConverter(new OrikaTimestampConverter());
我使用 Orika 来绘制对象。
我想将日期和时间戳字段的格式设置为“yyyy-MM-dd'T'HH:mm:ss.SSSXXX”
对于日期字段,我解决了这个问题:
@Override
public void configure(final MapperFactory orikaMapperFactory) {
orikaMapperFactory.getConverterFactory().registerConverter(new DateToStringConverter("yyyy-MM-dd\'T\'HH:mm:ss.SSSXXX"));
orikaMapperFactory.classMap(OrderDTO.class, Order.class).byDefault().register();
}
但是TimeStamp这个字段我不知道怎么做。
我通过以下方法解决了问题:
public class OrikaTimestampConverter extends CustomConverter<Timestamp, String> {
private final SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
@Override
public String convert(Timestamp source, Type<? extends String> destinationType, MappingContext mappingContext) {
Date date = new Date(source.getTime());
return formatter.format(date);
} }
并添加:
orikaMapperFactory.getConverterFactory().registerConverter(new OrikaTimestampConverter());