技术文摘
3 种 Springboot 全局时间格式化的方法,告别重复代码
在开发 Spring Boot 应用时,时间格式化是一个常见的需求。为了避免在每个需要处理时间的地方重复编写格式化代码,我们可以采用以下三种全局时间格式化的方法。
方法一:使用 @JsonFormat 注解
@JsonFormat 注解可以方便地对返回的 JSON 数据中的时间字段进行格式化。在实体类的时间字段上添加 @JsonFormat 注解,并指定相应的格式字符串,例如:
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
public class YourEntity {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date createTime;
// 其他字段和方法
}
这样,在将实体类转换为 JSON 数据时,时间字段会按照指定的格式进行输出。
方法二:自定义 HttpMessageConverter
通过自定义 HttpMessageConverter 可以实现更灵活的时间格式化。首先创建一个继承自 AbstractJackson2HttpMessageConverter 的类:
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import org.springframework.http.MediaType;
import org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter;
import java.text.SimpleDateFormat;
public class CustomJsonHttpMessageConverter extends AbstractJackson2HttpMessageConverter {
public CustomJsonHttpMessageConverter() {
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
super(objectMapper, MediaType.APPLICATION_JSON);
}
}
然后在配置类中注册这个自定义的 HttpMessageConverter:
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import java.util.List;
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
converters.add(new CustomJsonHttpMessageConverter());
}
}
方法三:配置 spring.jackson.date-format
在 application.properties 或 application.yml 文件中配置 spring.jackson.date-format 属性:
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
这种方式可以全局设置时间的格式化格式。
通过以上三种方法,我们可以有效地实现 Spring Boot 全局时间格式化,减少重复代码,提高开发效率和代码的可维护性。在实际项目中,根据具体的需求和场景选择合适的方法,让时间处理变得更加简洁和规范。
TAGS: SpringBoot 开发技巧 时间格式化方法 告别重复代码
- Win11 隐藏桌面图标的方法
- Win11 分盘方法:电脑 C 磁盘如何操作
- 方正 UEFI 启动 U 盘安装 Win8 系统指南
- 索尼 ea300c 笔记本 win10 系统安装教程
- 如何关闭 Linux 系统中不用的进程
- 如何设置 Linux 系统终端透明
- Win10 语音包的安装方法及系统启用新语音包技巧
- Win11 资源管理器停止工作的解决方法与修复教程
- Win10 22H2 首个预览版 19045.1865 推送至 Release 频道用户
- Win11 语音添加方法及新语音包添加技巧
- Ubuntu 16.04 中文版安装基础入门图文教程
- Linux 系统录屏方法及相关软件使用教程
- Linux 系统中网页版钉钉加密消息无法查看的解决方法
- Win10 鼠标右键持续转圈的解决之道
- VMware 虚拟机中 Ubuntu 16.04 安装详细教程(含图文及下载地址)