{
"toDepartureDate": "2016-12-28",
"fromDepartureDate": "2016-12-28"
}
我想将json中的字符串日期发布为java.time.LocalDate
,但我收到400 Bad Request错误。有人可以帮忙吗?我使用过@JsonFormat
但它也没有帮助我。
@JsonFormat(shape=JsonFormat.Shape.STRING,pattern="yyyy-MM-dd",timezone = "GMT+5:30")
private LocalDate fromDepartureDate;
@JsonFormat(shape=JsonFormat.Shape.STRING,pattern="yyyy-MM-dd",timezone = "GMT+5:30")
private LocalDate toDepartureDate;
{
"timestamp": 1482942147246,
"status": 400,
"error": "Bad Request",
"exception": "org.springframework.validation.BindException",
"errors": [
{
"codes": [
"typeMismatch.flightReportSearchDto.fromDepartureDate",
"typeMismatch.fromDepartureDate",
"typeMismatch.java.time.LocalDate",
"typeMismatch"
],
"arguments": [
{
"codes": [
"flightReportSearchDto.fromDepartureDate",
"fromDepartureDate"
],
"arguments": null,
"defaultMessage": "fromDepartureDate",
"code": "fromDepartureDate"
}
],
"defaultMessage": "Failed to convert property value of type [java.lang.String] to required type [java.time.LocalDate] for property 'fromDepartureDate'; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [@com.fasterxml.jackson.annotation.JsonFormat java.time.LocalDate] for value '2016-12-28'; nested exception is java.lang.IllegalArgumentException: Parse attempt failed for value [2016-12-28]",
"objectName": "flightReportSearchDto",
"field": "fromDepartureDate",
"rejectedValue": "2016-12-28",
"bindingFailure": true,
"code": "typeMismatch"
},
{
"codes": [
"typeMismatch.flightReportSearchDto.toDepartureDate",
"typeMismatch.toDepartureDate",
"typeMismatch.java.time.LocalDate",
"typeMismatch"
],
"arguments": [
{
"codes": [
"flightReportSearchDto.toDepartureDate",
"toDepartureDate"
],
"arguments": null,
"defaultMessage": "toDepartureDate",
"code": "toDepartureDate"
}
],
"defaultMessage": "Failed to convert property value of type [java.lang.String] to required type [java.time.LocalDate] for property 'toDepartureDate'; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [@com.fasterxml.jackson.annotation.JsonFormat java.time.LocalDate] for value '2016-12-29'; nested exception is java.lang.IllegalArgumentException: Parse attempt failed for value [2016-12-29]",
"objectName": "flightReportSearchDto",
"field": "toDepartureDate",
"rejectedValue": "2016-12-29",
"bindingFailure": true,
"code": "typeMismatch"
}
]
}
答案 0 :(得分:0)
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE)
上一个答案对我来说很好。只补充一点,如果你需要改变日期格式,可以用这句话:
th:value="${#temporals.format(fromDepartureDate,'yyyy-MM-dd')}"