文章目录

  • 方法一 JS格式化
  • 方法二 后端SimpleDateFormat格式化
  • 方法三 DateTimeFormatter格式化
  • 方法四 全局时间格式化
  • 方法五 局部时间格式化

方法一 JS格式化

function dateFormat(fmt, date) {let ret;const opt = {"Y+": date.getFullYear().toString(),        // 年"m+": (date.getMonth() + 1).toString(),     // 月"d+": date.getDate().toString(),            // 日"H+": date.getHours().toString(),           // 时"M+": date.getMinutes().toString(),         // 分"S+": date.getSeconds().toString()          // 秒// 有其他格式化字符需求可以继续添加,必须转化成字符串};for (let k in opt) {ret = newRegExp("(" + k + ")").exec(fmt);if (ret) {fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))};};return fmt;
}
let date = newDate();
dateFormat("YYYY-mm-dd HH:MM:SS", date);

方法二 后端SimpleDateFormat格式化

// 定义时间格式化对象和定义格式化样式
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// 格式化时间对象
String date = dateFormat.format(new Date())
@RequestMapping("/list")
public List<UserInfo> getList() {// 定义时间格式化对象SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");List<UserInfo> list = userMapper.getList();// 循环执行时间格式化list.forEach(item -> {// 使用预留字段 ctime 接收 createtime 格式化的时间(Date->String)item.setCtime(dateFormat.format(item.getCreatetime()));item.setUtime(dateFormat.format(item.getUpdatetime()));});return list;
}

方法三 DateTimeFormatter格式化

JDK8后可以使用DateTimeFormatter替代SimpleDateFormat,因为SimpleDateFormat是非线程安全的,而DateTimeFormatter是线程安全的,所以JDK8+的项目,尽量使用 DateTimeFormatter来进行时间格式化

@RequestMapping("/list")
public List<UserInfo> getList() {// 定义时间格式化对象DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");List<UserInfo> list = userMapper.getList();// 循环执行时间格式化list.forEach(item -> {// 使用预留字段 ctime 接收 createtime 格式化的时间(Date->String)item.setCtime(dateFormat.format(item.getCreatetime()));item.setUtime(dateFormat.format(item.getUpdatetime()));});return list;
}

方法四 全局时间格式化

在SpringBoot的配置文件application.properties(application.yml)中添加配置

# 格式化全局时间字段
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
# 指定时间区域类型
spring.jackson.time-zone=GMT+8

Controller在返回数据时,会自动调用 Spring Boot 框架中内置的 JSON 框架 Jackson,对返回的数据进行统一的 JSON 格式化处理,在处理的过程中它会判断配置文件中是否设置了“spring.jackson.date-format=yyyy-MM-dd HH:mm:ss”,如果设置了,那么 Jackson 框架在对时间类型的字段输出时就会执行时间格式化的处理,通过配置来实现全局时间字段的格式化功能了。

方法五 局部时间格式化

在实体类中添加 @JsonFormat 注解,可以实现时间的格式化功能

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;import java.util.Date;@Data
publicclass UserInfo {privateint id;private String username;// 对 createtime 字段进行格式化处理@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss", timezone = "GMT+8")private Date createtime;private Date updatetime;
}

SpringBoot时间格式化相关推荐

  1. SpringBoot时间格式化的5种方法!

    作者 | 王磊 来源 | Java中文社群(ID:javacn666) 转载请联系授权(微信ID:GG_Stone) 在我们日常工作中,时间格式化是一件经常遇到的事儿,所以本文我们就来盘点一下 Spr ...

  2. springboot时间格式化与空值格式化

    目录 1 时间格式化 1.1 出参格式化(Json) 1.1.1 局部配置 1.1.2 全局配置 1.1.2.1 yml配置文件中进行全局配置 1.1.2.2 编写配置类进行全局配置(推荐) 1.2 ...

  3. SpringBoot 时间格式化的 5 种实现方法,你用的是哪种?

    在我们日常工作中,时间格式化是一件经常遇到的事儿,所以本文我们就来盘点一下 Spring Boot 中时间格式化的几种方法. 时间问题演示 为了方便演示,我写了一个简单 Spring Boot 项目, ...

  4. SpringBoot 时间格式化

    在我们日常工作中,时间格式化是一件经常遇到的事儿,所以本文我们就来盘点一下 Spring Boot 中时间格式化的几种方法. 时间问题演示 UserController 实现代码如下: @RestCo ...

  5. 常用的SpringBoot时间格式化

    1. 前端时间格式化 function dateFormat(fmt, date) {let ret;const opt = {"Y+": date.getFullYear().t ...

  6. 3种 Springboot 全局时间格式化方式,别再写重复代码了

    时间格式化在项目中使用频率是非常高的,当我们的 API 接口返回结果,需要对其中某一个 date 字段属性进行特殊的格式化处理,通常会用到 SimpleDateFormat 工具处理. SimpleD ...

  7. Springboot实战:3种 Springboot 全局时间格式化方式

    时间格式化在项目中使用频率是非常高的,当我们的 API 接口返回结果,需要对其中某一个 date 字段属性进行特殊的格式化处理,通常会用到 SimpleDateFormat 工具处理. SimpleD ...

  8. java date 格式化_3种 Springboot 全局时间格式化方式,别再写重复代码了

    原文:3种 Springboot 全局时间格式化方式,别再写重复代码了 掘金 作者: 程序员内点事 时间格式化在项目中使用频率是非常高的,当我们的API接口返回结果,需要对其中某一个date字段属性进 ...

  9. SpringBoot+MyBatis+ElementUI中对于时间格式化问题的处理

    场景 在管理系统中,时间的存储.查询.显示的格式往往需要统一. 这就涉及到在数据库中存储时间,使用Mybatis对时间进行比较查询,使用Springboot中的实体类存储查询时间, 使用前端时间选择器 ...

最新文章

  1. Java面试题及答案整理( 2022年最新版,持续更新)
  2. 官网的Ext direct包中.NET版的问题
  3. 小米开源监控系统OpenFalcon应对高并发7种手段
  4. 用GO把你想说的话写到比特币链上
  5. Xcode clang-omp openmp开发
  6. ubuntu16.04 svn搭建多项目搭建多个版本仓
  7. [9]UITableView表视图1
  8. Git 版本管理工具命令速查
  9. Kubernetes集群(概念篇)
  10. pythonpath manager_python 路径操作工具 pathlib,比 os 模块好用太多
  11. 推荐一款配有强大数据管理和可视化ETL的BI工具
  12. 华为机试——进制转换
  13. 简化document.createElement(div)动态生成层方法
  14. 7-1 关于堆的判断 (25 分)
  15. 用C语言写烟花,给心中的那个人看!
  16. 电脑无限重启 服务器,电脑开机无限蓝屏重启怎么办
  17. 信息科技岗笔试笔记:互联网大厂笔试基础题目(三)
  18. 天龙八部 找怪物ID
  19. 用L298驱动直流减速电机
  20. Colab使用方法,以及读取Google drive中的文件太慢的解决办法(亲测有效)

热门文章

  1. UVA1368 UVALive3602 ZOJ3132 DNA Consensus String【贪心】
  2. UVA10018 Reverse and Add【回文数+水题】
  3. 【数值分析】—— 对数函数、指数函数(数值稳定性)
  4. TensorFlow 学习(十四)—— contrib 与 slim
  5. TensorFlow 学习(九)—— 初始化函数(概率分布函数 api、常数生成函数)
  6. 推理集 —— 现象与观察
  7. 可视化——matplotlib常用api(一)
  8. linux 帐号 配置sftp_Linux 下sftp配置之密钥方式登录详解
  9. java单例模式_Java 实现单例模式的 9 种方法
  10. python画3d图-Python 竟能绘制如此酷炫的三维图