JSON处理Date格式

简介: JSON处理Date格式

JSON处理Date格式

@RequestMapping(value = "/date1")
@ResponseBody
public String date1() throws JsonProcessingException {
//声明时间日期 注意是util下的
    Date date = new Date();
//打印默认时间日期格式  Tue Feb 08 21:36:27 CST 2022
    System.out.println(date);
//发现问题  时间默认返回的json字符串变成了时间戳类型的格式 Timestamp 1644327387386
    return   new ObjectMapper().writeValueAsString(date);
}

发现问题:时间默认返回的json字符串变成了时间戳类型的格式 Timestamp 1644327387386

处理问题:如何让它不返回时间戳?如何时间格式化问题

//关闭ObjectMapper的时间戳功能 通过objectMapper的configure方法关闭时间戳功能

ObjectMapper objectMapper=new ObjectMapper();

 objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS,false);

 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

  objectMapper.setDateFormat(simpleDateFormat);



@RequestMapping(value = "/date2")
@ResponseBody
public String date2() throws JsonProcessingException {
    //1 如何让它不返回时间戳?   通过objectMapper的configure方法关闭时间戳功能
    ObjectMapper objectMapper=new ObjectMapper();
    objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS,false);
    //2 时间格式化问题 自定义日期格式对象
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    //3 让objectMapper指定日期格式为simpleDateFormat
    objectMapper.setDateFormat(simpleDateFormat);
//声明Date
    Date date = new Date();
    //格式化日期并输出
    System.out.println(simpleDateFormat.format(date));//2022-02-08 22:01:12
return   objectMapper.writeValueAsString(date);//"2022-02-08 22:01:12"
}

封装JSON工具日期转化工具类

上述代码冗余 我们把公共代码提取出来进行封装成工具类,下次使用直接调用即可

工具类和公共方法


package com.wyh.util;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import java.util.Date;
import java.text.SimpleDateFormat;
/**
 * @program: SpringBoot-Ajax-JSON
 * @description: JSON日期格式化封装类
 * @author: 魏一鹤
 * @createDate: 2022-02-08 22:07
 **/
public class JSONDateUtil {
//重载 把时间戳也进行封装
    //如果没有自定义时间格式的话就使用我们默认的yyyy-MM-dd HH:mm:ss"  
    //如果调用方法在参数列表指明了自定义时间格式的话就使用参数列表的时间格式
    public static String JSONFormatDateUtil(Object object){
return JSONFormatDateUtil(object,"yyyy-MM-dd HH:mm:ss");
    }
// JSON转换日期的公共方法,直接传递Date类型的参数使用ObjectMapper进行处理 需要抛出异常 得到格式化好之后的json日期类型
    // 把方法用static进行修饰是为了不用创建工具类对象就能直接通过“.”进行公共方法的调用
    public static String JSONFormatDateUtil(Object object,String dateFormat){
//1 创建ObjectMapper工具类
        ObjectMapper objectMapper=new ObjectMapper();
//2 通过ObjectMapper类的configure方法关闭时间戳功能
        objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS,false);
//3 创建时间格式化SimpleDateFormat类 自定义日期格式对象
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat(dateFormat);
//4 把自定义格式化好之后的日期类型给objectMapper的setDateFormat去用,用来转换时间格式
        objectMapper.setDateFormat(simpleDateFormat);
//5 json转换时间格式得到json字符串日期类型
        //封装的时候尽量不要抛异常而是捕获异常 不然每次调用这个方法都要在其他地方进行抛异常
        String JSONDate = null;
try {
            JSONDate = objectMapper.writeValueAsString(object);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
//6 返回最终处理好的json字符串日期类型
        return JSONDate;
    }
}


使用工具类和公共方法

注意观察JSONDateUtil.JSONFormatDateUtil()的参数列表和返回的格式


//使用工具类和公共方法
    @RequestMapping(value = "/date3")
    @ResponseBody
public String date3()  {
//声明Date
        Date date = new Date();
//使用工具类的公共方法把date进行传参转换格式
        String JSONDate = JSONDateUtil.JSONFormatDateUtil(date);
//返回json日期类型
        return  JSONDate; //"2022-02-08 22:31:11"
    }
}
//使用工具类
@RequestMapping(value = "/date3")
@ResponseBody
public String date3()  {
//声明Date
    Date date = new Date();
//使用工具类的公共方法把date进行传参转换格式
    String JSONDate = JSONDateUtil.JSONFormatDateUtil(date,"yyyy"); 
//返回json日期类型
    return  JSONDate; //"2022"
}
//使用工具类
@RequestMapping(value = "/date3")
@ResponseBody
public String date3()  {
//声明Date
    Date date = new Date();
//使用工具类的公共方法把date进行传参转换格式
    String JSONDate = JSONDateUtil.JSONFormatDateUtil(date,"yyyy-MM-dd");
//返回json日期类型
    return  JSONDate;  //"2022-02-08"
}
目录
相关文章
|
15天前
|
JSON Java 数据格式
springboot中表字段映射中设置JSON格式字段映射
springboot中表字段映射中设置JSON格式字段映射
40 1
|
9天前
|
JSON JavaScript Java
对比JSON和Hessian2的序列化格式
通过以上对比分析,希望能够帮助开发者在不同场景下选择最适合的序列化格式,提高系统的整体性能和可维护性。
13 3
|
15天前
|
JSON 数据格式 索引
Python中序列化/反序列化JSON格式的数据
【11月更文挑战第4天】本文介绍了 Python 中使用 `json` 模块进行序列化和反序列化的操作。序列化是指将 Python 对象(如字典、列表)转换为 JSON 字符串,主要使用 `json.dumps` 方法。示例包括基本的字典和列表序列化,以及自定义类的序列化。反序列化则是将 JSON 字符串转换回 Python 对象,使用 `json.loads` 方法。文中还提供了具体的代码示例,展示了如何处理不同类型的 Python 对象。
|
25天前
|
JSON 人工智能 算法
探索LLM推理全阶段的JSON格式输出限制方法
文章详细讨论了如何确保大型语言模型(LLMs)输出结构化的JSON格式,这对于提高数据处理的自动化程度和系统的互操作性至关重要。
|
12天前
|
JSON API 数据安全/隐私保护
拍立淘按图搜索API接口返回数据的JSON格式示例
拍立淘按图搜索API接口允许用户通过上传图片来搜索相似的商品,该接口返回的通常是一个JSON格式的响应,其中包含了与上传图片相似的商品信息。以下是一个基于淘宝平台的拍立淘按图搜索API接口返回数据的JSON格式示例,同时提供对其关键字段的解释
|
1月前
|
JSON 数据格式
LangChain-20 Document Loader 文件加载 加载MD DOCX EXCEL PPT PDF HTML JSON 等多种文件格式 后续可通过FAISS向量化 增强检索
LangChain-20 Document Loader 文件加载 加载MD DOCX EXCEL PPT PDF HTML JSON 等多种文件格式 后续可通过FAISS向量化 增强检索
76 2
|
1月前
|
JSON API 数据格式
商品详情数据JSON格式示例参考(api接口)
JSON数据格式的商品详情数据通常包含商品的多个层级信息,以下是一个综合多个来源信息的JSON数据格式的商品详情数据示例参考:
|
2月前
|
XML JSON JavaScript
js的json格式
js的json格式
|
2月前
|
JSON 数据格式
Blob格式转json格式,拿到后端返回的json数据
文章介绍了如何将后端返回的Blob格式数据转换为JSON格式,并处理文件下载和错误提示。
90 0
Blob格式转json格式,拿到后端返回的json数据
|
1月前
|
机器学习/深度学习 JSON JavaScript
LangChain-21 Text Splitters 内容切分器 支持多种格式 HTML JSON md Code(JS/Py/TS/etc) 进行切分并输出 方便将数据进行结构化后检索
LangChain-21 Text Splitters 内容切分器 支持多种格式 HTML JSON md Code(JS/Py/TS/etc) 进行切分并输出 方便将数据进行结构化后检索
29 0