java後端介面接收物件集合時日期無法轉換導致日期預設當前日期問題
阿新 • • 發佈:2021-01-06
直接上程式碼
@RequestMapping("/service/equipmentCheck")
@ResponseBody
public ResultParam<LaJlEquipmentDto> equipmentCheck(@RequestParam("data") MultipartFile data,
@RequestParam(value="imgs",required=false) MultipartFile[] files){
ResultParam< LaJlEquipmentDto> resp = new ResultParam<>();
try {
JSONObject jsonObject = JSONObject.
fromObject(new String(data.getBytes(),"utf-8"));
String[] dateFormats = new String[] {"yyyy-MM-dd HH:mm:ss"};
net.sf.json.util.JSONUtils.getMorpherRegistry( ).registerMorpher(new DateMorpher(dateFormats));
// JSONUtils.getMorpherRegistry().registerMorpher(new DateMorpher(new String[] {"yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss"}));
LaJlEquipmentDto equipment =(LaJlEquipmentDto)JSONObject.toBean(jsonObject,LaJlEquipmentDto.class);
if (manageResourceService.equipmentCheck(equipment,files)){
resp.success(equipment,1);
}else{
resp.failed(ErrorCodeEnum.SAVE_DATA_FAIL);
}
} catch (Exception e) {
resp.failed(ErrorCodeEnum.SYSTEM_UNKNOWN_ERROR);
}
return resp;
}
其中一段
String[] dateFormats = new String[] {"yyyy-MM-dd HH:mm:ss"};
net.sf.json.util.JSONUtils.getMorpherRegistry().registerMorpher(new DateMorpher(dateFormats));
// JSONUtils.getMorpherRegistry().registerMorpher(new DateMorpher(new String[] {"yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss"}));
包括註釋也是可以用的,兩種方法
但是還是有個問題,對於我來說
它貌似new String[] {“yyyy-MM-dd”, “yyyy-MM-dd HH:mm:ss”}的時候
只能識別第一個,而無法匹配第二個,所有有時候導致還是失敗
所以目前我的暫時解決方案就是,全部都轉時分秒,就解決了