项目场景:activiti7 添加流程变量
activiti7 引擎添加流程审批时添加变量或者完成task时添加流程变量
问题描述
activiti7 的流程变量添加时和获取时的时间相差一天
例如:修改某档案离职,档案管理员审核
修改的数据添加到流程变量:
map.put("Archives",Archives);
runtimeService.startProcessInstanceByKey("archivesAppr",map);
添加时数据:
获取时数据:
原因分析:
activiti进行map转json类型时使用的时区默认是UTC的:
数据库的时区为GMT+8,项目时区使用的也是GMT+8,这就导致acitiviti进行json转换时会少8小时,所以30号直接变成了29号
解决方案:
学艺不精,这是全局json格式化的问题,并不是activiti的问题,解决方案有两个,一个是直接配置文件加上json的时区设置,另一个是再实体类加上json格式化注解:
1.解决方案1
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8") //这里加上时区
@Excel(name = "出生年月", width = 30, dateFormat = "yyyy-MM-dd")
@Compare("出生年月")
private Date arcBirthday;
2.解决方案2
//yml文件中加上
jackson:
time-zone: GMT+8