解决mapstuct中date和LocalDateTime互转时区错误的问题

解决mapstuct中date和LocalDateTime互转时区错误的问题

@Mapping(target = "taskCreateTime", expression = "java(LocalDateTime.ofInstant( 
history.getTaskCreateTime().toInstant(), ZoneId.of( \"Asia/Shanghai\" ) ))")
ApprovalHistory mapApprovalHistory(ProjectApprovalHistory history);

expression表示你指定的属性(target)即将被设置的值,目前Java是唯一支持的表达式语言,
Java()中是合法的Java表达式语句,可以执行之后计算出一个值,赋值给target,
例如上面的语句,会让mapstruct生成如下代码

${MappingResult}.taskCreateTime( LocalDateTime.ofInstant( history.getTaskCreateTime().toInstant(), 
ZoneId.of( "Asia/Shanghai" ) ) );

就是把你要映射的对象的taskCreateTime设置为你提供的表达式。通过你提供的表达式自定义映射的过程

你可能感兴趣的:(解决mapstuct中date和LocalDateTime互转时区错误的问题)