服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - @JsonFormat 实现日期格式自动格式化

@JsonFormat 实现日期格式自动格式化

2021-11-26 11:47J_Rabbit Java教程

这篇文章主要介绍了@JsonFormat 实现日期格式自动格式化,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

@JsonFormat 日期格式自动格式化

通常日期格式都是以时间戳的形式存放在数据库里,当前端页面通过接口查询时,我们会将一个对象的某些属性查出来返回给页面。

例如,某个类里面有个属性

?
1
Timestamp create_time

给这个对象实体类中的get方法加注解:@JsonFormat 来实现格式的自动转换:

依赖的jar包:jackson-annotations-2.8.5.jar

?
1
2
3
4
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
public Timestamp getCreate_time() {
        return create_time;
}

加注解前的返回值是一个时间戳,加了之后则按照注解的格式自动格式化。

@JsonFormat时间格式化注解使用

@JsonFormat注解是一个时间格式化注解

比如我们存储在mysql中的数据是date类型的,当我们读取出来封装在实体类中的时候,就会变成英文时间格式,而不是yyyy-MM-dd HH:mm:ss这样的中文时间,因此我们需要用到JsonFormat注解来格式化我们的时间。

JsonFormat注解是jackson包里面的一个注解,因此在使用的时候需要引入fasterxml maven的jar包,如下所示。

?
1
2
3
4
5
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.2</version>
</dependency>

引入fasterxml maven jar包之后,就可以在实体类属性上面使用@JsonFormat注解了,要注意的是,它只会在类似@ResponseBody返回json数据的时候,才会返回格式化的yyyy-MM-dd HH:mm:ss时间,你直接使用System.out.println()输出的话,仍然是类似“Fri Dec 01 21:05:20 CST 2017”这样的时间样式。

?
1
2
3
4
5
6
7
8
9
10
package demo;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
public class Student {
    private int id;
    private String username;       
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date createDate;   
    //getter setter省略。。。           
}

当我们这样@ResponseBody输出json数据的时候,@JsonFormat注解标识的date属性就会自动返回yyyy-MM-dd HH:mm:ss样式的时间了,例如。

?
1
2
3
4
5
6
7
8
@PostMapping("/api/getStudent")
@ResponseBody
public Map<String,Object> findStudentById(Long stuId){
    Map<String,Object> resultMap = new HashMap<>();
    Student stu = StudentService.findStudentById(stuId);
    resultMap.put("result",stu);
    return resultMap;
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。

原文链接:https://www.cnblogs.com/J-Rabbit/p/6605588.html

延伸 · 阅读

精彩推荐
  • Java教程java实现计算周期性提醒的示例

    java实现计算周期性提醒的示例

    本文分享一个java实现计算周期性提醒的示例,可以计算父亲节、母亲节这样的节日,也可以定义如每月最好一个周五,以方便安排会议 ...

    Java教程网2922019-11-18
  • Java教程异步IO:新时代的IO处理利器

    异步IO:新时代的IO处理利器

    无论是非阻塞IO,IO复用,还是信号驱动式IO,都不是真正意义上的IO,真正的异步IO是数据从内核空间拷贝到用户空间也是异步处理的,拷贝完成,再通知应...

    Java架构杂谈10552021-01-09
  • Java教程Java之常用类小结案例讲解

    Java之常用类小结案例讲解

    这篇文章主要介绍了Java之常用类小结案例讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下...

    我不读研4492021-10-28
  • Java教程浅谈Spring Context加载方式

    浅谈Spring Context加载方式

    这篇文章主要介绍了浅谈Spring Context加载方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    David_jim8212021-05-06
  • Java教程SpringBoot扫描不到Controller的解决方案

    SpringBoot扫描不到Controller的解决方案

    这篇文章主要介绍了SpringBoot扫描不到Controller的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...

    FanClys3852021-09-29
  • Java教程SpringCloud Open feign 使用okhttp 优化详解

    SpringCloud Open feign 使用okhttp 优化详解

    这篇文章主要介绍了SpringCloud Open feign 使用okhttp 优化详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    涨知识的coder5642021-08-13
  • Java教程Java数组的扩容代码示例

    Java数组的扩容代码示例

    这篇文章主要介绍了Java数组的扩容,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下...

    Engineer-MrYang9652021-01-11
  • Java教程利用Java实现简单的词法分析器实例代码

    利用Java实现简单的词法分析器实例代码

    众所周知编译原理中的词法分析算是很重要的一个部分,原理比较简单,不过网上大部分都是用C语言或者C++来编写,因为最近在学习Java,故用Java语言实现...

    DuYue4282020-07-17