spring中时间格式化的两种方法示例讲解

 更新时间:2023年08月16日 11:15:24   作者:薛定谔的__猫  
这篇文章主要介绍了spring中时间格式化的两种方法,方法一自己格式化,方法二通过配置,结合实例代码讲解的非常详细,文中补充介绍了Spring项目中时间格式化的方法,需要的朋友可以参考下

spring中时间格式化的两种方式

方法一:自己格式化

自己写一个格式化的类,把date类型的时间传进去:

public class DateUtil {
    public static String formatDate(Date date){
        SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        return simpleDateFormat.format(date);
    }
}

重写相关属性的get方法:

   public String getCreateTime() {
        if (createTime==null){
            return "";
        }
        return DateUtil.formatDate(createTime);
    }

然后获取的时间就是正确的格式了。

方法二:配置

在配置文件中(.yml)配置:

  # JSON序列化配置
Spring:
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss # 日期格式

补充:Spring项目中时间格式化的方法

1. 前言

web 开发中,我们经常会遇到前台和后台进行时间格式转换交互,下面做一下总结

  • 使用工具类 SimpleDateFormat
  • 使用 @JsonFormat
  • 使用 @JSONField
  • 使用 @DateTimeFormat
  • 使用第三方组件 Hutool

1.1. 使用工具类 SimpleDateFormat

对于这个工具类这里不做过多的赘述

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateTime = df.format(new Date());

1.2. 使用 @JsonFormat

@JsonFormat 来源于 Jackson Jackson 是一个简单基于 Java 应用库, Jackson 可以轻松的将 Java 对象转换成 json 对象和 xml 文档,同样也可以将 json、xml 转换成 Java 对象。 Jackson 所依赖的 jar 包较少,简单易用并且性能也要相对高些,并且 Jackson 社区相对比较活跃,更新速度也比较快

public class Order {
	// timezone:是时间设置为东八区,避免时间在转换中有误差
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
	private Date createDate;
}

1.3. 使用 @JSONField

@JSONField 来源于 fastjson ,是阿里的开源框架,主要进行 JSON 解析和序列化

public class Order {
	@JSONField(format="yyyy-MM-dd HH:mm:ss")
    private Date time;
}

1.4. 使用 @DateTimeFormat

@DateTimeFormat spring 自带的处理框架,主要用于将时间格式化

public class Order {
	@DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date createDate;
}

1.5. @JsonFormat + @DateTimeFormat

public class Order {
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date createDate;
}

1.6. 使用第三方组件 Hutool

Hutool 是一个小而全的 Java 工具类库,通过静态方法封装,降低相关 API 的学习成本,提高工作效率

官网:https://www.hutool.cn/

String dateTime1="2018-02-18 20:53:45";
String dateTime2="2018-02-18";
String dateTime3="20:53:45";
String dateTime4="2018-02-18 20:53";
//将不同的格式转换为Date对象
Date date1=DateUtil.parse(dateTime1);  
System.out.println("date1:"+date1.toString());
Date date2=DateUtil.parse(dateTime2);
System.out.println("date2:"+date2.toString());
Date date3=DateUtil.parse(dateTime3);
System.out.println("date3:"+date3.toString());
Date date4=DateUtil.parse(dateTime4);
System.out.println("date4:"+date4.toString());
//使用DateUtil.parse(String,String):Date 转换为指定格式的Date对象
Date date5=DateUtil.parse(dateTime1, "yyyy-MM-dd");
System.out.println("date5:"+date5.toString());

https://www.jb51.net/article/250370.htm

参考资料:

详细的使用 API 参考

到此这篇关于spring中时间格式化的两种方式的文章就介绍到这了,更多相关spring时间格式化内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 一文深入分析java.lang.ClassNotFoundException异常

    一文深入分析java.lang.ClassNotFoundException异常

    这篇文章主要给大家介绍了关于java.lang.ClassNotFoundException异常的相关资料,java.lang.ClassNotFoundException是Java编程时经常会遇到的一个异常,它表示JVM在尝试加载某个类时未能找到该类,需要的朋友可以参考下
    2023-10-10
  • mybatis中BigDecimal中的0存为null的坑及解决

    mybatis中BigDecimal中的0存为null的坑及解决

    在使用MyBatis进行数据库操作时,若Java中属性类型为BigDecimal且值为0,插入数据库时可能会变为null,而不是0,这个问题可能是由于MyBatis在处理BigDecimal类型时的弱类型判断导致的,当BigDecimal变量与空字符串进行比较时,MyBatis可能将其视为null
    2024-10-10
  • jcl与jul log4j1 log4j2 logback日志系统机制及集成原理

    jcl与jul log4j1 log4j2 logback日志系统机制及集成原理

    这篇文章主要介绍了jcl与jul log4j1 log4j2 logback的集成原理,Apache Commons-logging 通用日志框架与日志系统的机制,有需要的朋友可以借鉴参考下
    2022-03-03
  • java不用循环语句打印数组元素的实例

    java不用循环语句打印数组元素的实例

    下面小编就为大家带来一篇java不用循环语句打印数组元素的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • Mybatis自定义typeHandle过程解析

    Mybatis自定义typeHandle过程解析

    这篇文章主要介绍了Mybatis自定义typeHandle过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • SpringBoot集成ElasticSearch实现minio文件内容全文检索

    SpringBoot集成ElasticSearch实现minio文件内容全文检索

    这篇文章详细介绍了如何在Spring Boot项目中集成Elasticsearch和Kibana,包括Docker安装、中文分词器安装、后端代码实现以及前端查询组件封装,需要的朋友可以参考下
    2024-11-11
  • Java groovy内存回收测试步骤解析

    Java groovy内存回收测试步骤解析

    这篇文章主要介绍了Java groovy内存回收测试步骤解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • SpringBoot如何接收前端传来的json数据

    SpringBoot如何接收前端传来的json数据

    这篇文章主要介绍了SpringBoot如何接收前端传来的json数据问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • springboot中使用雪花算法生成雪花ID

    springboot中使用雪花算法生成雪花ID

    本文主要介绍了springboot中使用雪花算法生成雪花ID,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • Java中常用的设计模式之策略模式详解

    Java中常用的设计模式之策略模式详解

    这篇文章主要为大家详细介绍了Java中常用的设计模式之策略模式,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02

最新评论