• @JsonFormat与@DateTimeFormat注解的使用和Timestamp取出来1970问题和@JSONField(name="Timestamp",deserializeUsing= FastJsonLocalDateTimeDeserializer.class)


    总结: 

      注解@JsonFormat主要是后台到前台的时间格式的转换

      注解@DataFormAT主要是前后到后台的时间格式的转换

    @JSONField 是解决
    UserDto dto = JSONObject.parseObject(strJson, UserDto.class); 解决从Json里面取出来的时间戳 为1970的问题
    public class FastJsonLocalDateTimeDeserializer implements ObjectDeserializer {
    
        private static List<DateTimeFormatter> dateTimeFormatters = new LinkedList<>();
    
        static {
            // Add your own formatter to there
            dateTimeFormatters.add(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
            dateTimeFormatters.add(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS"));
            dateTimeFormatters.add(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSSSSS"));
            dateTimeFormatters.add(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSSSSSSSS"));
        }
    
        @SuppressWarnings("unchecked")
        @Override
        public LocalDateTime deserialze(DefaultJSONParser parser, Type type, Object fieldName) {
            final Long input = parser.lexer.longValue();
            LocalDateTime localDateTime = null;
            localDateTime=LocalDateTime.ofEpochSecond(input,0,ZoneOffset.of("+8"));
            Assert.notNull(localDateTime, "FastJson LocalDateTime use" +
                    " FastJsonTimestampDeserializer format error: " + input);
            return localDateTime;
        }
    
        @Override
        public int getFastMatchToken() {
            return JSONToken.LITERAL_INT;
        }
    }
  • 相关阅读:
    解决方案solution
    Marshal类
    鼠标钩子WH_MOUSE_LL和WH_MOUSE的区别
    DllImport
    打包.py文件成.exe
    C++定义全部变量注意项
    类.cpp文件不识别类.h所定义的结构体问题
    C++判断文件是否存在
    博客专栏
    软件测试基础知识
  • 原文地址:https://www.cnblogs.com/shanheyongmu/p/13321335.html
Copyright © 2020-2023  润新知