zoukankan      html  css  js  c++  java
  • @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;
        }
    }
  • 相关阅读:
    hdu 5154 拓扑排序
    CSS性能优化的8个技巧
    移动端性能监控方案Hertz
    箴言
    如何使网页的文字不能被复制
    flyio 的请求封装
    vue-cli3.0 环境变量与模式
    函数防抖和函数节流
    CSS世界中那些说起来很冷的知识
    vue多层次组件监听动作和属性
  • 原文地址:https://www.cnblogs.com/shanheyongmu/p/13321335.html
Copyright © 2011-2022 走看看