dob : any = "15-05-2001";
发送到服务器时,它返回错误Could not read document: Can not construct instance of java.util.Date from String value '15-05-2001': not a valid representation (error: Failed to parse Date value '15-05-2001': Can not parse date \"15-05-2001\": not compatible with any of standard forms (\"yyyy-MM-dd'T'HH:mm:ss.SSSZ\", \"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'\", \"EEE, dd MMM yyyy HH:mm:ss zzz\", \"yyyy-MM-dd\"))\n
在Angular代码中尝试转换日期
dob = new Date(moment(dob, "DD-mm-yyyy").format("MM-DD-YYYY")).getTime();
返回1581710400000
返回错误的日期,但是服务器接受了输入。
如何格式化此日期,以便我可以发送所需的日期,并且服务器接受该日期。
答案 0 :(得分:2)
发生了同样的问题,我的解决方案是将datetime
转换为toLocalString
。
var dateTime = new Date();
var sendObj = dateTime.now().toLocalString();
更新:
dob = "15-05-2001";
dob = new Date(moment(this.dob, "dd-MM-YYYY").format()).getTime();
答案 1 :(得分:0)
您可以在后端创建一个Advice
,类似于:
@ControllerAdvice
public class DateAdvice{
@InitBinder
public void initBinder(WebDataBinder binder){
binder.regisyerCustomEditor(Date.class, new PropertEditorSupport(){
public void setAsTest(String text){
//convert to date from this text.
setValue(convertToDate(text));
}
}
}
}
您可以编写所有可能的组合来解析日期。
另一种方法是将日期更改为YYYY-MM-DD
格式。