mapping
{
"properties": {
"createDate": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss"
},
"id": {
"type": "long"
}
}
}
post数据
{"createDate": 1588707487000}
报错:
{
"error": {
"root_cause": [
{
"type": "mapper_parsing_exception",
"reason": "failed to parse field [createDate] of type [date] in document with id '1'. Preview of field's value: '1588707487000'"
}
],
"type": "mapper_parsing_exception",
"reason": "failed to parse field [createDate] of type [date] in document with id '1'. Preview of field's value: '1588707487000'",
"caused_by": {
"type": "illegal_argument_exception",
"reason": "failed to parse date field [1588707487000] with format [yyyy-MM-dd HH:mm:ss.SSS]",
"caused_by": {
"type": "date_time_parse_exception",
"reason": "date_time_parse_exception: Text '1588707487000' could not be parsed at index 0"
}
}
},
"status": 400
}
这个是由于格式问题,fastjson默认会转换为long的时间,mapping格式设置为epoch_millis就好了,但是时间如果是long可读性差,这时可以指定fastjson的格式
增加JSONField注解指定时间格式就好了
@JSONField(format="yyyy-MM-dd HH:mm:ss")
private Date createdDate;