编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

阿里Json工具之fastjson(三)处理日期

wxchong 2024-08-09 11:37:22 开源技术 12 ℃ 0 评论

更多java文章与项目资源、毕业设计、福利

关注公众号 程序猿forever


本节我们来简单介绍一下fastjson对日期的处理

fastjson处理日期的API很简单,例如:

JSON.toJSONStringWithDateFormat(date, "yyyy-MM-dd HH:mm:ss.SSS");1

使用ISO-8601日期格式

JSON.toJSONString(obj, SerializerFeature.UseISO8601DateFormat);1

全局修改日期格式

JSON.DEFFAULT_DATE_FORMAT = "yyyy-MM-dd";
JSON.toJSONString(obj, SerializerFeature.WriteDateUseDateFormat);12

反序列化能够自动识别如下日期格式:

  • ISO-8601日期格式
  • yyyy-MM-dd
  • yyyy-MM-dd HH:mm:ss
  • yyyy-MM-dd HH:mm:ss.SSS
  • 毫秒数字
  • 毫秒数字字符串
  • .NET JSON日期格式
  • new Date(198293238)

  • 下面来看看具体的代码示例:

    User 类:

    package json.fastjson.date;
    
    import java.util.Date;
    
    public class User {
    
        private Long id;
        private String name;
        // 增加时间字段
        private Date date;
    
        public Long getId() {
            return id;
        }
    
        public void setId(Long id) {
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public Date getDate() {
            return date;
        }
    
        public void setDate(Date date) {
            this.date = date;
        }
    
        @Override
        public String toString() {
            return "User [id=" + id + ", name=" + name + ", date=" + date + "]";
        }
    }12345678910111213141516171819202122232425262728293031323334353637383940

    测试类:

    package json.fastjson.date;
    
    import java.util.Date;
    
    import com.alibaba.fastjson.JSON;
    import com.alibaba.fastjson.serializer.SerializerFeature;
    
    public class TestDate {
    
        public static void main(String[] args) {
    
            User user = new User();
            user.setId(2L);
            user.setName("guest");
            user.setDate(new Date());
    
            // 序列化
            String jsonString = JSON.toJSONString(user);
            System.out.println("序列化:" + jsonString);
    
            // 序列化处理时间,方式一
            jsonString = JSON.toJSONStringWithDateFormat(user, "yyyy-MM-dd HH:mm:ss.SSS");
            System.out.println("序列化处理时间,方式一:" + jsonString);
    
            // 序列化处理时间,方式二:ISO-8601日期格式
            jsonString = JSON.toJSONString(user, SerializerFeature.UseISO8601DateFormat);
            System.out.println("序列化处理时间,方式二:ISO-8601日期格式:" + jsonString);
    
            // 序列化处理时间,方式三:全局修改日期格式
            JSON.DEFFAULT_DATE_FORMAT = "yyyy-MM-dd";
            jsonString = JSON.toJSONString(user, SerializerFeature.WriteDateUseDateFormat);
            System.out.println("序列化处理时间,方式三:全局修改日期格式:" + jsonString);
    
        }
    }
    123456789101112131415161718192021222324252627282930313233343536

    输出结果:

    序列化:{"date":1516884789616,"id":2,"name":"guest"}
    序列化处理时间,方式一:{"date":"2018-01-25 20:53:09.616","id":2,"name":"guest"}
    序列化处理时间,方式二:ISO-8601日期格式:{"date":"2018-01-25T20:53:09.616+08:00","id":2,"name":"guest"}
    序列化处理时间,方式三:全局修改日期格式:{"date":"2018-01-25","id":2,"name":"guest"}

    Tags:

    本文暂时没有评论,来添加一个吧(●'◡'●)

    欢迎 发表评论:

    最近发表
    标签列表