Cuando el consumidor de microservicios llama al proveedor para obtener datos de clase de entidad, se informa un error:
java.lang.IllegalArgumentException: no se puede deserializar el valor de tipo `java.util.Date` de la cadena" 2020-03-17 20:33:37 ": no es una representación válida (error: Error al analizar el valor de fecha '2020-03- 17 20:33:37 ': No se puede analizar la fecha "2020-03-17 20:33:37": aunque parece encajar en el formato' aaaa-MM-dd'T'HH: mm: ss.SSSZ ', el análisis falla (indulgencia? nulo)) en [Fuente: DESCONOCIDO; línea: -1, columna: -1] (a través de la cadena de referencia: ...)
El significado general es que el formato de hora no cumple con los requisitos. Verificó el documento por hora. El formato de conversión predeterminado es
"aaaa-MM-dd'T'HH: mm: ss.SSSZ" "aaaa-MM-dd'T'HH: mm: ss.SSS'Z '" "EEE, dd MMM aaaa HH: mm: ss zzz" "aaaa-MM-dd"
No cumple con nuestros requisitos, en general, anota la clase de entidad que necesita convertirse
@JsonFormat (patrón = "aaaa-MM-dd HH: mm: ss", zona horaria = "GMT + 8")
O el centro de configuración de microservicios puede configurar el proyecto de manera uniforme
# spring.jackson.time-zone = GMT + 8 # spring.jackson.date-format = aaaa-MM-dd HH: mm: ss
¡Se puede resolver!
Pero recientemente cuando se usa la adaptación de highgo de la base de datos doméstica, debido a requisitos especiales, los campos se definen en pinyin, como CJSJ (tiempo de creación) En este momento, el campo de tiempo se anota o se informa el error.
Finalmente, la prueba encontró que cambiar el campo a minúsculas puede resolver cjsj (¡similar a esto!)