使用@JsonFormat和@DateTimeFormat对Date格式化操作

使用@JsonFormat和@DateTimeFormat对Date格式化操作的完整攻略如下:

  1. @JsonFormat注解用于序列化Java对象,将日期格式化为指定的格式,例如将日期格式化为yyyy-MM-dd HH:mm:ss,其基本使用方式如下:
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;

其中pattern属性指定日期格式化的格式,timezone属性指定时区。

  1. @DateTimeFormat注解用于将前端传来的字符串类型的时间格式转换成Date类型,例如将“2022-01-01 00:00:00”转换成Date类型,其基本使用方式如下:
@RequestMapping("/addUser")
@ResponseBody
public String addUser(User user, @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") Date createTime) {
    user.setCreateTime(createTime);
    userService.addUser(user);
    return "success";
}

在上面的代码中,我们使用了@DateTimeFormat注解,将createTime参数转换成了Date类型。

示例1:使用@JsonFormat注解格式化日期

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
    private Integer id;
    private String name;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;
}

// 在控制器中序列化对象
@RestController
public class UserController {
    @RequestMapping("/user")
    public User user() {
        return new User(1, "Tom", new Date());
    }
}

在浏览器中访问http://localhost:8080/user,返回的JSON格式如下:

{
    "id": 1,
    "name": "Tom",
    "createTime": "2022-04-16 13:50:10"
}

我们可以看到createTime被格式化为了指定的格式。

示例2:使用@DateTimeFormat注解将字符串类型的时间格式转换成Date类型

import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;

@Getter
@Setter
public class User {
    private Integer id;
    private String name;
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
}

@Controller
public class UserController {
    @RequestMapping(value = "/addUser", method = RequestMethod.POST)
    public String addUser(User user) {
        userService.addUser(user);
        return "redirect:/userList";
    }
}

// 在模板中使用表单提交时间
<form role="form" action="${pageContext.request.contextPath}/addUser" method="post">
    <div class="form-group">
        <label>用户名</label>
        <input type="text" name="name" class="form-control" placeholder="请输入用户名">
    </div>
    <div class="form-group">
        <label>创建时间</label>
        <input type="text" name="createTime" class="form-control" placeholder="请输入创建时间,格式为yyyy-MM-dd HH:mm:ss">
    </div>
    <button type="submit" class="btn btn-primary">提交</button>
</form>

在添加用户时,我们将页面传递来的createTime参数使用@DateTimeFormat注解,转换成了Date类型。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用@JsonFormat和@DateTimeFormat对Date格式化操作 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • java8、jdk8日期转化成字符串详解

    Java 8/JDK 8 日期转化成字符串详解 在 Java 8/JDK 8 中,我们有多种选择将日期转化成字符串。本篇文章将会详细讲解一些转化日期的方法。 SimpleDateFormat SimpleDateFormat 是 Java 中一个比较常见的日期格式化工具。使用 SimpleDateFormat 可以将 Date 对象格式化成字符串,也可以将字…

    Java 2023年5月20日
    00
  • 浅谈IDEA中Maven配置问题全解决

    当我们在使用 IDEA 开发 Java 项目时,通常会使用 Maven 来管理项目的依赖,而配置 Maven 可能会遇到一些问题。本文将全面讲解使用 IDEA 中配置 Maven 时遇到的问题,并提供详细的解决方案。 Maven 配置问题 在使用 IDEA 中配置 Maven 时,可能会遇到以下一些问题。 网络连接问题 在从 Maven 仓库下载依赖时,可能…

    Java 2023年5月20日
    00
  • Springboot集成jsp及部署服务器实现原理

    下面我会详细讲解“Springboot集成jsp及部署服务器实现原理”的完整攻略。 1. 集成jsp Spring Boot默认不支持JSP视图,但我们可以通过添加相关依赖和配置来实现JSP视图的支持。 添加相关依赖和配置 在pom.xml文件中添加以下依赖: <dependency> <groupId>org.apache.tomc…

    Java 2023年6月15日
    00
  • IntelliJ IDEA 2020 安装和常用配置(推荐)

    IntelliJ IDEA 2020 安装和常用配置 安装 IntelliJ IDEA 2020 下载 IntelliJ IDEA 2020 的安装程序,可以到官方网站 https://www.jetbrains.com/idea/ 下载。 安装安装程序,一路默认即可,安装完成后启动软件。 常用配置 1. 设置编码格式 在项目中设置编码格式非常重要,可以避免…

    Java 2023年5月19日
    00
  • 解决mybatis-plus通用mapper调用报错:Invalid bound statement

    解决mybatis-plus通用mapper调用报错“Invalid bound statement”的完整攻略如下: 问题背景 在使用mybatis-plus时,常常会使用它提供的通用Mapper进行数据库操作。但是,有时候会出现以下错误报告: org.apache.ibatis.binding.BindingException: Invalid boun…

    Java 2023年5月20日
    00
  • java开发CPU流水线与指令乱序执行详解

    Java开发CPU流水线与指令乱序执行详解 一、流水线 CPU流水线可以看做是一个包含若干个处理单元的管道。每个处理单元都负责处理某一部分的指令。在流水线工作时,每个指令在依次经过不同的处理单元,每个处理单元都对指令做出部分处理,最终合起来完成指令的执行。由于每个处理单元都是独立的,它们可以并行处理不同的指令,这样就可以避免CPU空转,提高CPU的利用率。 …

    Java 2023年5月26日
    00
  • springboot集成Mybatis的详细教程

    SpringBoot 是一个非常流行的Java Web框架,与 Mybatis 结合使用可以快速地实现数据操作和服务构建。下面将为你提供 SpringBoot 集成 Mybatis 的详细教程。 准备工作 在开始之前,请确保已经完成以下准备工作: 搭建好了 Java 开发环境,并确保已经安装了 Maven。 创建一个 SpringBoot 项目。 添加依赖 …

    Java 2023年5月19日
    00
  • 详解Java的Hibernate框架中的List映射表与Bag映射

    详解Java的Hibernate框架中的List映射表与Bag映射 Hibernate是一个流行的ORM(对象关系映射)框架,它为Java开发人员提供了一个方便的方式来与关系型数据库交互。Hibernate框架支持多种映射方式,本文将详细讲解Hibernate框架中的List映射表与Bag映射。 List映射表 List映射表允许我们在Java对象中关联多个…

    Java 2023年5月19日
    00
合作推广
合作推广
分享本页
返回顶部