美文网首页
org.springframework.http.convert

org.springframework.http.convert

作者: wyn_做自己 | 来源:发表于2022-04-12 11:31 被阅读0次

    今日份鸡汤:不管世事多艰难,别忘了,看开点儿再温柔点儿,不要满身戾气,也不要紧皱眉头,生活都是在眉开眼笑的时候,一天天好起来的。早安。

    异常详细信息:

    org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type java.util.Date from String "2020-10-14 13:56:30.0": not a valid representation (error: Failed to parse Date value '2020-10-14 13:56:30.0': Cannot parse date "2020-10-14 13:56:30.0": while it seems to fit format 'yyyy-MM-dd'T'HH:mm:ss.SSSX', parsing fails (leniency? null)); nested exception is com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type java.util.Date from String "2020-10-14 13:56:30.0": not a valid representation (error: Failed to parse Date value '2020-10-14 13:56:30.0': Cannot parse date "2020-10-14 13:56:30.0": while it seems to fit format 'yyyy-MM-dd'T'HH:mm:ss.SSSX', parsing fails (leniency? null))

    出现问题的场景:

    今天开发的时候,调用依赖的他人接口出现了不能将[字符串]转换为日期异常。

    原因:

    格式不一致,不能直接成功转化。

    解决方法:

    @JsonFormat注解很好的解决了这个问题,在对应的实体日期属性上增加这个注解 就可以解决这个问题了。不过一般的时候要注意timezone这个参数,按照你的需求去做相应的指定。或者不指定使用默认。

    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
    

    常用属性:
    shap: 表示序列化后的一种类型,默认为JsonFormat.Shape.ANY

    pattern: 表示日期的格式,默认为序列化以后的格式,比如:2020-09-08T15:19:09.000+00:00

    timezone: 默认是GMT,中国需要GMT+8

    locale: 根据位置序列化的一种格式,默认为本地的语言简称,中国的语言简称为zh_CN

    时区简介:
    GMT:Greenwich Mean Time 格林尼治标准时间。这是以英国格林尼治天文台观测结果得出的时间,这是英国格林尼治当地时间,这个地方的当地时间过去被当成世界标准的时间。

    UT:Universal Time 世界时。根据原子钟计算出来的时间。

    UTC:Coordinated Universal Time 协调世界时。因为地球自转越来越慢,每年都会比前一年多出零点几秒,每隔几年协调世界时组织都会给世界时+1秒,让基于原子钟的世界时和基于天文学(人类感知)的格林尼治标准时间相差不至于太大。并将得到的时间称为UTC,这是现在使用的世界标准时间。

    协调世界时不与任何地区位置相关,也不代表此刻某地的时间,所以在说明某地时间时要加上时区

    也就是说GMT并不等于UTC,而是等于UTC+0,只是格林尼治刚好在0时区上。
    GMT = UTC+0

    格林尼治时间(GMT)、世界协调时间(UTC)和中国时间的关系
    中国时间(Asia/Shanghai) = 格林尼治时间(GMT) + 8
    格林尼治时间(GMT) = 世界协调时间(UTC) + 0

    注意:@JsonFormat注解默认的时区为格林尼治时间,比中国时间(东八区是要小8个小时的)。

    导入的依赖:

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>2.9.2</version>
    </dependency>
    

    相关文章

      网友评论

          本文标题:org.springframework.http.convert

          本文链接:https://www.haomeiwen.com/subject/xwigsrtx.html